标签:耦合 抽象工厂 gety als sim else test nbsp static
工厂模式定义:一个用于创建对象的接口,让子类决定实例化哪一个类。实例化延迟到其子类。‘
抽象工厂模式:为创建一组相关或相互依赖的对象提供一个接口,而且无须指定他们的具体类
只对结果负责。
解耦合
public class SimpleFactory { public Milk getMilk(String name) { if ("特仑苏".equals(name)) { return new Telunsu(); } else if ("伊犁".equals(name)) { return new Yili(); } else if ("蒙牛".equals(name)) { return new Mengniu(); } return null; } }
public interface Factory { //统一产品出口 Milk getMilk(); } public class MengniuFactotry implements Factory { @Override public Milk getMilk() { return new Mengniu(); } } public class TelunsuFactotry implements Factory { @Override public Milk getMilk() { return new Telunsu(); } } public class YiliFactotry implements Factory { @Override public Milk getMilk() { return new Yili(); } }
Test
public class FactoryTest { public static void main(String[] args) { Factory factory = new MengniuFactotry(); System.out.println(factory.getMilk().getName()); }
产品登记,产品族
public abstract class AbstractFactory { public abstract Milk getMengniu(); public abstract Milk getYili(); public abstract Milk getTelunsu(); } public class MilkFactory extends AbstractFactory { @Override public Milk getMengniu() { return new Mengniu(); } @Override public Milk getYili() { return new Yili(); } @Override public Milk getTelunsu() { return new Telunsu(); } }
3、优点
优点:
》良好的封装性,代码结构清晰
》扩展性好
使用场景
》new一个对象的替代品
参考资料:
《大话设计模式》
标签:耦合 抽象工厂 gety als sim else test nbsp static
原文地址:https://www.cnblogs.com/idea-persistence/p/9535926.html