工厂方法模式有一个问题就是,类的创建依赖工厂类,也就是说,如果想要拓展程序,必须对工厂类进行修改,这违背了闭包原则,所以,从设计角度考虑,有一定的问题,如何解决?就用到抽象工厂模式,创建多个工厂类,这样一旦需要增加新的功能,直接增加新的工厂类就可以了



//接口
public interface Sender {public void Send();
}
//实现类1
public class MailSender implements Sender {public void Send() {System.out.println("mail sender");}}
//实现类2
public class SMSSender implements Sender {public void Send() {System.out.println("SMS sender");}}


  1. //抽象工厂1
    public class SendMailFactory implements Provider {public Sender produce() {return new MailSender();}
    }
    //抽象工厂2
    public class SMSSenderFactory implements Provider {public Sender produce() {return new SMSSender();}
    }
    //抽象工厂测试
    public class AbstractFactoryTest {public static void main(String[] args) {Provider pro = new SendMailFactory();Sender sender = pro.produce();sender.Send();}
    }


     

其实这个模式的好处就是,如果你现在想增加一个功能:发及时信息,则只需做一个实现类,实现Sender接口,同时做一个工厂类,实现Provider接口,就OK了,无需去改动现成的代码。这样做,拓展性较好!
来自为知笔记(Wiz)

转载于:https://www.cnblogs.com/liubo6/p/4502613.html

2 抽象工厂模式(Abstract Factory)相关推荐

  1. 乐在其中设计模式(C#) - 抽象工厂模式(Abstract Factory Pattern)

    原文:乐在其中设计模式(C#) - 抽象工厂模式(Abstract Factory Pattern) [索引页] [源码下载] 乐在其中设计模式(C#) - 抽象工厂模式(Abstract Facto ...

  2. 抽象工厂模式 Abstract Factory Pattern

    源地址 抽象工厂模式 抽象工厂模式(Abstract Factory Pattern)是围绕一个超级工厂创建其他工厂.该超级工厂又称为其他工厂的工厂.这种类型的设计模式属于创建型模式,它提供了一种创建 ...

  3. 设计模式 - 抽象工厂模式(abstract factory pattern) 详解

    抽象工厂模式(abstract factory pattern) 详解 本文地址: http://blog.csdn.net/caroline_wendy/article/details/270916 ...

  4. 抽象工厂模式-Abstract Factory Pattern

    抽象工厂模式-Abstract Factory Pattern 抽象工厂模式(Abstract Factory Pattern):提供一个创建一系列相关或相互依赖对象的接口,而无须指定它们具体的类.抽 ...

  5. 【设计模式】抽象工厂模式 Abstract Factory Pattern

    简单工厂模式是一个工厂类根据工厂方法的参数创建不出不同的产品, 工厂方法模式是每一个产品都有一个一一对应的工厂负责创建该产品.那么今天要讲的抽象工厂模式是一个工厂能够产生关联的一系列产品.抽象工厂模式 ...

  6. 【JAVA进阶系列】JAVA 设计模式 -- 抽象工厂模式(Abstract Factory)

    [JAVA进阶系列]JAVA 设计模式 -- 抽象工厂模式(Abstract Factory) [1.1]抽象工厂模式简介 抽象工厂者模式的类结构图 AbstractProduct(抽象产品),Abs ...

  7. 设计模式(20):创建型-抽象工厂模式(Abstract Factory)

    设计模式(Design pattern)是一套被反复使用.多数人知晓的.经过分类编目的.代码设计经验的总结.使用设计模式是为了可重用代码.让代码更容易被他人理解.保证代码可靠性. 毫无疑问,设计模式于 ...

  8. 设计模式之抽象工厂模式(Abstract Factory)摘录

    面向对象系统的分析和设计实际上追求的就是两点:高内聚(Cohesion)和低耦合(Coupling). 23种GOF设计模式一般分为三大类:创建型模式.结构型模式.行为模式. 创建型模式包括:1.Fa ...

  9. Net设计模式之抽象工厂模式(Abstract Factory Pattern)(1)

    一.抽象工厂模式简介(Bref Introduction) 抽象工厂模式(Abstract Factory Pattern),提供一个创建一系列相关或者相互依赖对象的接口,而无需制定他们的具体类.优点 ...

  10. 设计模式之抽象工厂模式---abstract factory

    模式的介绍 模式的定义 Provide an interface for creating families of related or dependent objects without speci ...

最新文章

  1. 查找mysql的分区情况_MySQL 5.5 查看分区表的执行计划
  2. 翻转字符串里面的单词(*****)
  3. PHP检测远端文件是否存在
  4. 在大公司天天调参数,感觉快废了~
  5. 【HTML】iframe嵌套界面自适应,可高度自由收缩
  6. Baxter实战 (二)ubuntu14.04安装Baxter Workstation
  7. 北京计算机应用基础考试时间,07年北京市自学考试计算机应用基础课周末开考...
  8. 【转载】UMTS到LTE的系统架构演进
  9. Navicat提示access violation at address in module'navicate.exe'
  10. 北航数理统计大作业_数学146分上岸复旦大学大数据学院统计学,备考经验分享!...
  11. 9.python-循环
  12. 第 三 十 八 天:Apache 选 项 和 模 块 问 题 附:php
  13. uniapp 清除文件缓存
  14. outlook查看图片错位异常问题
  15. 听见丨HTC推国行VR一体机VIVE Focus:搭载骁龙835+AMOLED屏 Embark开始测试用无人驾驶卡车运送冰箱
  16. Babylon.js 第19章 体积光散射后期处理
  17. iphone与ipad历代分辨率
  18. win7自动关机命令(win7设置每天自动关机命令)
  19. 【Shell】while 循环中的变量无法保存|无法获取while中的变量|管道中的函数变量无法获取问题
  20. 计算机网络(六)——端到端的运输协议

热门文章

  1. 了解typename的双重意义
  2. oracle 自增加列的实现
  3. Windows Phone SDK 7.1 简体中文版离线安装包地址
  4. (转)Apache服务器使用.htaccess实现图片防盗链方法教程
  5. tornado websocket
  6. jackson 用法总结
  7. HDU1847 博弈论 水题
  8. 一对一单双向主键关联
  9. (转载)Linux的IPC命令
  10. 耗时1个月整理的这份英语资源!一次性全部分享给你,手慢无!