设计模式二、抽象工厂模式
设计模式part2
1. 抽象工厂模式
工厂方法模式有一个问题就是,类的创建依赖工厂类,也就是说,如果想要拓展程序,必须对工厂类进行修改,这违背了闭包原则,所以,从设计角度考虑,有一定的问题,如何解决?就用到抽象工厂模式,创建多个工厂类,这样一旦需要增加新的功能,直接增加新的工厂类就可以了,不需要修改之前的代码。因为抽象工厂不太好理解,我们先看看图,然后就和代码,就比较容易理解
【java】Sender
publicinterface Sender {void send();}
【java】SmsSender
publicclass SmsSender implements Sender{@Overridepublicvoid send() {System.out.println("sms sender");}}
【java】MailSender
publicclass MailSender implements Sender{@Overridepublicvoid send() {System.out.println("mail sender");}}
【java】Provider
publicinterface Provider {Sender produce();}
【java】SmsSenderFactory
publicclass SmsSendFactory implements Provider{@Overridepublic Sender produce() {returnnewSmsSender();}}
【java】MailSenderFatory
publicclass MailSendFactory implements Provider{@Overridepublic Sender produce() {returnnew MailSender();}}
【java】MainTest
publicclass MainTest {publicstaticvoid main(String[] args) {Providerprovider = new SmsSendFactory();Sendersender = provider.produce();sender.send();}}
设计模式二、抽象工厂模式相关推荐
- 设计模式系列·抽象工厂模式
前言 以小说的笔法写的设计模式系列文章,你绝对看得懂![首发于公众号:"聊聊代码"] 设计模式系列·王小二需求历险记(一) 设计模式系列·王小二需求历险记(二) 设计模式系列·封装 ...
- 设计模式三—抽象工厂模式
设计模式三-抽象工厂模式 一.定义 抽象工厂模式是工厂方法模式的进一步抽象.如果产品簇中只有一种产品,则退化为工厂方法模式. 二.原理图 三.代码实例 * 苹果和土豆是园丁1的杰作 * 葡萄和西红柿是 ...
- C#设计模式(4)——抽象工厂模式
C#设计模式(4)--抽象工厂模式 一.引言 在上一专题中介绍了工厂方法模式,工厂方法模式是为了克服简单工厂模式的缺点而设计出来的,简单工厂模式的工厂类随着产品类的增加需要增加额外的代码),而工厂方法 ...
- 设计模式之抽象工厂模式---abstract factory
模式的介绍 模式的定义 Provide an interface for creating families of related or dependent objects without speci ...
- 乐在其中设计模式(C#) - 抽象工厂模式(Abstract Factory Pattern)
原文:乐在其中设计模式(C#) - 抽象工厂模式(Abstract Factory Pattern) [索引页] [源码下载] 乐在其中设计模式(C#) - 抽象工厂模式(Abstract Facto ...
- 设计模式复习-抽象工厂模式
设计模式复习-抽象工厂模式 有两种硬件,PC和Phone,有两种系统,Windows和Linux,现在假设PC和Phone上全都能安装这两个系统,并且将来硬件不会在变化,但是系统可能需要扩展,比如扩展 ...
- 设计模式之四(抽象工厂模式第三回合)
原文:设计模式之四(抽象工厂模式第三回合) 前言 抽象工厂模式:提供一个创建一系列相关或相互依赖对象的接口,而无需指定它们具体的类. 抽象工厂模式最大的好处便是易于交换产品系列,由于具体工厂类,例如I ...
- python抽象工厂模式_Python设计模式之抽象工厂模式
Python设计模式之抽象工厂模式 这篇文章主要为大家详细介绍了Python设计模式之抽象工厂模式,感兴趣的小伙伴们可以参考一下 python面向对象编程入门,我们需要不断学习进步 "&qu ...
- 设计模式-04抽象工厂模式
设计模式-04抽象工厂模式 文章中涉及到的代码,请自行下载 https://gitee.com/pan_xiao_lei123/designmode.git 前面介绍的工厂方法模式中考虑的是一类产品的 ...
- Java 设计模式之抽象工厂模式
抽象工厂模式(Abstract Factory Pattern)是围绕一个超级工厂创建其他工厂.该超级工厂又称为其他工厂的工厂.这种类型的设计模式属于创建型模式,它提供了一种创建对象的最佳方式. 在抽 ...
最新文章
- Spring整合Struts2
- java语言for模板_java版的模板语言
- 恢复应用_ofo年底裁员超50%,苹果应用市场恢复畅销榜,支付宝15周年微电影发布,MIUI来电留言功能即将下线,这就是今天的其他大新闻!...
- 释疑の删除多余的ALV布局以及选择条件变式
- P3190-[HNOI2007]神奇游乐园【插头dp】
- hdu 4612 边连通度缩点+树的最长路径
- 【100题】第十八题(约瑟夫循环)
- Shell_Shell调用SQLPlus简介(案例)
- if __name__ == '__main__' 如何正确理解?
- 去阿里面试,被一道 Spring 面试题难倒了
- android 动态壁纸 例子,android 动态壁纸实例(1)【转】
- python实现根据excel内容批量生成二维码
- 港口信息化、智能化、自动化产品设计想法---5
- 索尼1a dac插电脑用什么驱动。在哪下载,求助
- 近代光学系统设计概论学习笔记-第四章双胶合和双分离消色差物镜
- Ubuntu安装Clang\Clang版本切换
- CAD中插入外部参照字体会变繁体_为什么CAD插入外部参照时有些文字消失了?
- 圣思园将于本周日(10月31日)举行Web Service开发大型免费公开课
- 【安规】电气间隙和爬电距离如何确定
- windows安装包删了会有影响吗_删除Windows更新安装包及更新记录