【设计模式】抽象工厂
2015-03-08 12:15
106 查看
工厂方法有缺点:每次新增产品类,都需要去修改工厂类的代码。。。
我们改进一下:
在原来代码基础上,我们做如下改进
对每个产品都提供一个工厂类:
他们都需要去实现统一接口:
也就是说使用接口把两个工厂类做了统一:那么再来新产品的时候,我们新增工厂类和对应的产品实现类就可以了。不需要修改工厂。
我们改进一下:
在原来代码基础上,我们做如下改进
对每个产品都提供一个工厂类:
public class EmailFactory implements Provider { public static Email productEmail() { return new Email(); } }
public class SmsFactory implements Provider { @Override public IAction produce() { return new Sms(); } }
他们都需要去实现统一接口:
public interface Provider { public IAction produce(); }
也就是说使用接口把两个工厂类做了统一:那么再来新产品的时候,我们新增工厂类和对应的产品实现类就可以了。不需要修改工厂。
public class Test { public static void main(String[] args) { Provider smsFactory = new SmsFactory(); smsFactory.produce().doSomeThings(); } }
相关文章推荐
- 阿Sam的设计模式学习笔记----抽象工厂(Abstract Factory)模式
- C#设计模式之抽象工厂(AbstractFactory)
- 设计模式之抽象工厂(AbstractFactory)---用抽象工厂实现网页样式生成器
- 设计模式之抽象工厂(一)
- 设计模式---抽象工厂(C++版) 希望大家顶一下
- C#设计模式之抽象工厂(abstract factory)模式示例源代码
- 设计模式示例三 Abstract Factory(抽象工厂)
- C#中23个经典设计模式(1)——ABSTRACT FACTORY(抽象工厂)
- C#设计模式之抽象工厂(AbstractFactory)
- C#设计模式之抽象工厂(abstract factory)模式示例源代码 [转]
- C#设计模式之抽象工厂(AbstractFactory)
- C#设计模式之抽象工厂(abstract factory)模式示例源代码
- C#设计模式之抽象工厂(AbstractFactory)
- GoF 23个经典的设计模式01--创建模式之抽象工厂(未完代续)
- C#设计模式之抽象工厂(abstract factory)模式示例源代码
- C#设计模式之抽象工厂(AbstractFactory)
- C#设计模式之抽象工厂(AbstractFactory)
- C#设计模式之抽象工厂(abstract factory)模式示例源代码
- 设计模式 之 抽象工厂
- C#设计模式之抽象工厂(AbstractFactory)