1.SimpleFactory-简单(静态)工厂模式
来源:互联网 发布:狗讨厌什么味道 知乎 编辑:程序博客网 时间:2024/06/05 08:12
Simple Factory 简单(静态)工厂模式
简单工厂模式:
含有一定的商业逻辑和判断逻辑,根据逻辑不同,产生具体的工厂产品,对于客户端去除了对具体产品的依赖.
对产品来说它是符合开闭原则的——对扩展开放,对修改关闭;
但是每增加一个产品,都要在工厂类中增加相应的商业逻辑和判 断逻辑,这显自然是违背开闭原则.示例类图:
示例代码:
// 产品public interface Sender { public void send(String msg);}//具体产品public class MailSender implements Sender { @Override public void send(String msg) { System.out.println("MailSender send : " + msg); }}public class SmsSender implements Sender { @Override public void send(String msg) { System.out.println("SmsSender send : " + msg); }}//简单工厂public class SendSimpleFactory { public static Sender getSender(String type) { if (null == type) return null; if ("mail".equalsIgnoreCase(type)) { return new MailSender(); } if ("sms".equalsIgnoreCase(type)) { return new SmsSender(); } return null; }}// 测试public class FactoryTest { public static void main(String[] args) { simpleFactory(); } // 简单工厂模式测试 public static void simpleFactory() { Sender sender = SendSimpleFactory.getSender("sms"); sender.send("SimpleFactory"); SendSimpleFactory.getSender("mail").send("SimpleFactory"); }}
由于简单工厂模式中只有一个工厂类来对应所有产品,所以适用于业务简单的情况下或者具体产品很少增加的情况.而对于复杂的业务环境可能不太适应了,这就应该由工厂方法模式来解决。
0 0
- 1.SimpleFactory-简单(静态)工厂模式
- 1.SimpleFactory-简单(静态)工厂模式
- 设计模式案例--工厂模式--简单工厂(静态工厂)(simplefactory)
- 简单工厂模式SimpleFactory
- 简单工厂模式SimpleFactory
- 简单工厂模式(SimpleFactory)
- 简单工厂模式(SimpleFactory)
- 简单工厂模式(SimpleFactory-C#)
- 简单工厂模式(SimpleFactory Pattern)
- 简单工厂模式(SimpleFactory Pattern)
- 简单工厂模式(SimpleFactory Pattern)
- 简单工厂模式(SimpleFactory Pattern)
- 简单工厂(SimpleFactory)模式简介
- 23种设计模式之-----简单工厂(静态工厂)模式(SimpleFactory Pattern)
- 设计模式 -- 简单工厂模式 SimpleFactory
- 设计模式之简单工厂模式(SimpleFactory)
- 设计模式-简单工厂模式(SimpleFactory)
- 设计模式之SimpleFactory(简单工厂)
- javaEE 6 规范
- Jenkins进阶系列之——13修改Jenkins权限控制
- 什么是高内聚、低耦合
- bootloader之u-boot
- Qt线程---链接信号与槽的connect
- 1.SimpleFactory-简单(静态)工厂模式
- 2.FactoryMethod-工厂方法模式
- 【积累库】--Java 内部类(静态内部类)作用(198)
- 3.AbstractFactory-抽象工厂模式
- 4.Singleton-单例模式
- 5.Builder-建造者模式
- 6.Prototype-原型模式
- 7.Adapter-适配器模式
- 读取类所在目录路径