设计模式一 之 工厂模式(Factory Method)
2017-12-12 00:00
447 查看
工厂方法模式(Factory Method)
工厂模式分为,普通工厂模式,多个工厂模式,静态工厂方法,我自己钟爱使用静态工厂模式。
此模式说白了就是很好的使用了java多态,重写,减少了代码的冗余,并时整个流程变得很清晰。
一,静态工厂方法
举个简单实例,以便日后看的时候,更快速理解。
代码的 REFERENCE: https://www.cnblogs.com/maowang1991/archive/2013/04/15/3023236.html
个人觉得用的场景很多,比如 很多模块或者很多对象,都有相同的方法时候,比如save方法,基本上每个模块都有save方法,dao层可能相同,但是service层的业务可能会不一样,这时候就可以使用工厂模式去 编写不同的实现类,实现同一个save方法。
缺点:工厂方法模式有一个问题就是,类的创建依赖工厂类,也就是说,如果想要拓展程序,必须对工厂类进行修改,违反闭包原则。
工厂模式分为,普通工厂模式,多个工厂模式,静态工厂方法,我自己钟爱使用静态工厂模式。
此模式说白了就是很好的使用了java多态,重写,减少了代码的冗余,并时整个流程变得很清晰。
一,静态工厂方法
举个简单实例,以便日后看的时候,更快速理解。
/**发送接口*/ public interface Sender { public void Send(); } /**两个对象的实现类*/ public class MailSender implements Sender { @Override public void Send() { System.out.println("this is mailsender!"); } } public class SmsSender implements Sender { @Override public void Send() { System.out.println("this is sms sender!"); } } /**创建对象的工厂类*/ public class SendFactory { //这里demo参数为String类型,实际中用枚举类比较合适,并用swich case 定位需要创建哪个对象 public static Sender produce(String type) { if ("mail".equals(type)) { return new MailSender(); } else if ("sms".equals(type)) { return new SmsSender(); } else { System.out.println("请输入正确的类型!"); return null; } } } /**运行测试类*/ public class FactoryTest { public static void main(String[] args) { Sender sender = SendFactory.produce("sms"); sender.Send(); } }
代码的 REFERENCE: https://www.cnblogs.com/maowang1991/archive/2013/04/15/3023236.html
个人觉得用的场景很多,比如 很多模块或者很多对象,都有相同的方法时候,比如save方法,基本上每个模块都有save方法,dao层可能相同,但是service层的业务可能会不一样,这时候就可以使用工厂模式去 编写不同的实现类,实现同一个save方法。
缺点:工厂方法模式有一个问题就是,类的创建依赖工厂类,也就是说,如果想要拓展程序,必须对工厂类进行修改,违反闭包原则。
相关文章推荐
- 【设计模式】创建型模式之工厂方法Factory Method
- 学习笔记系列之NET设计模式(3):工厂方法(Factory Method)
- Java设计模式二:抽象工厂模式(Abstract Factory)/工厂方法(Factory Method)
- Java设计模式二:抽象工厂模式(Abstract Factory)/工厂方法(Factory Method)
- PHP设计模式:创建型之工厂模式(Factory Method)
- 设计模式之工厂方法模式---factory method
- [设计模式学习笔记二][创建型模式][工厂方法(Factory Method)]
- 设计模式 一 工厂方法Factory Method(工厂模式)
- 设计模式-简单工厂模式/静态工厂方法(Static Factory Method)
- 【设计模式基础】创建型模式 - 4 - 工厂方法(Factory Method)
- Java设计模式----------简单工厂类+工厂方法(FactoryMethod)
- ios设计模式读书笔记----Factory Method(工厂方法)
- java设计模式之工厂模式--普通工厂方法模式(Factory Method)
- 设计模式学习之工厂方法(Factory Method,创建型模式)(2)
- 设计模式-创建型模式#工厂方法FactoryMethod
- 浅谈JAVA设计模式之——工厂方法(FactoryMethod)
- 设计模式-创建型模式之 Factory Method(工厂方法)
- JAVA设计模式(01):创建型-工厂模式【工厂方法模式】(Factory Method)
- 设计模式(一)----- 工厂方法(FactoryMethod)----(JAVA版)
- 【设计模式】——工厂方法FactoryMethod