抽象工厂模式
来源:互联网 发布:java 算法 快速排序 编辑:程序博客网 时间:2024/05/23 01:59
2.抽象工厂模式(Abstract Factory)
工厂方法模式有一问题,类的创建以来工厂类,想要扩展程序,必须对工厂类进行修改,这违背了闭包原则。所以,用抽象工厂模式,创建多个工厂类,一旦需要增加新的功能,直接增加新的工厂类。
example:
public interface Sender{ public void Send();}
两个实现类:
public MailSender implements Sender{ @Override public void Send(){ System.out.println("this is mailsender!"); }}
public SmsSender implements Sender{ @Override public void Send(){ System.out.println("this is sms sender!"); }}
两个工厂类:
public class SendMailFactory implements Provider { @Override public Sender produce(){ return new MailSender(); } }
public class SendSmsFactory implements Provider{ @Override public Sender produce() { return new SmsSender(); } }
在提供一个接口:
public interface Provider{ public Sender produce();}
测试如下:
public class Test{ public static void main(String[] args){ Provider provider = new SendMailFactory(); Sender sender = provider.produce(); send.Send(); }}
这个模式的好处就是,如果你想增加一个功能:XXXX;只需要做一个实现类实现Sender接口,同时在做一个工厂类事项Provider接口,无需改动现有代码。
3.单例模式(Singleton)
Singleton是一个很常用的模式,下次再记录。
0 0
- 工厂模式 -- 抽象工厂
- 工厂模式-抽象工厂
- 工厂模式-抽象工厂
- 工厂模式/抽象工厂模式
- 工厂模式&&抽象工厂模式
- 工厂模式---抽象工厂模式
- 工厂模式&抽象工厂模式
- 工厂模式,抽象工厂模式
- 【模式】抽象工厂模式
- 简单工厂、工厂模式、抽象工厂模式
- 简单工厂、工厂模式、抽象工厂模式
- 简单工厂&工厂模式&抽象工厂模式
- 工厂方法,抽象工厂模式
- 2,工厂模式--抽象工厂
- C#工厂模式-抽象工厂
- 工厂模式与抽象工厂
- 抽象工厂设计模式
- 抽象工厂模式
- CSS实现特殊背景效果
- POJ 1328-Radar Installation(贪心)
- JSTL自定义标签
- 整理的长诗2
- JDBC数据库基础操作(Mysql)
- 抽象工厂模式
- leetcode-36. Valid Sudoku
- 漫画城之自动轮播+GridView
- zabbix3.0 从坚持到用起 开始配置管理界面
- [1]Matlab如何创建文件夹
- Atom, Xcode, VisualStudio等编辑器activate-power-mode离子抖动炫酷效果插件安装(Mac)
- iOS开发小技巧[004]:千辛万苦找不到解决方案,那是因为你不会用Xcode的帮助文档
- 算法竞赛入门经典第三章总结(python实现)
- MySQL数据库远程备份