美文网首页
创建型模式 --- 工厂模式

创建型模式 --- 工厂模式

作者: 十二找十三 | 来源:发表于2019-12-17 14:52 被阅读0次
    工厂模式的几种形态:
    1.简单工厂模式
    2.工厂方法模式
    3.抽象工厂模式
    

    1.简单工厂模式

    public interface Product {
    }
    
    public class A implements Product {
        public A(){
            System.out.println("制造了A");
        }
    }
    
    
    public class B implements Product {
        public B(){
            System.out.println("制造了B");
        }
    }
    
    ......
    
    public class ProductFactory {
        public static Product produce(String productName) throws Exception {
            switch (productName) {
                case "a":
                    return new A();
                case "b":
                    return new B();
                default:
                    throw new Exception("没有该产品");
            }
        }
    }
    

    就是根据参数返回不同的实例对象

    2.工厂方法模式

    public interface Factory {
        public Product produce();
    }
    
    public interface Product{}
    
    public class A implements Product {
        public A(){
            System.out.println("制造了A");
        }
    }
    
    
    public class B implements Product {
        public B(){
            System.out.println("制造了B");
        }
    }
    
    ......
    
    public class AFactory implements Factory {
        @Override
        public Product produce() {
            return new A();
        }
    }
    
    public class BFactory implements Factory {
        @Override
        public Product produce() {
            return new B();
        }
    }
    
    ......
    

    可以自由的扩展自定义的产品和产品工厂

    3.抽象工厂模式

    public interface Factory {
        public ProductA produceA();
        public ProductB produceB();
    }
    
    public interface ProductA{}
    public interface ProductB{}
    
    public class A implements ProductA {
        public A(){
            System.out.println("制造了A");
        }
    }
    
    
    public class B implements ProductA {
        public B(){
            System.out.println("制造了B");
        }
    }
    ......
    
    public class C implements ProductB {
        public C(){
            System.out.println("制造了C");
        }
    }
    
    
    public class D implements ProductB {
        public D(){
            System.out.println("制造了D");
        }
    }
    ......
    
    public class AFactory implements Factory {
        @Override
        public ProductA produceA() {
            return new A();
        }
    
        @Override
        public ProductB produceB() {
            return new C();
        }
    }
    
    public class BFactory implements Factory {
        @Override
        public ProductA produceA() {
            return new B();
        }
    
        @Override
        public ProductB produceB() {
            return new D();
        }
    }
    ......
    

    相关文章

      网友评论

          本文标题:创建型模式 --- 工厂模式

          本文链接:https://www.haomeiwen.com/subject/gkvbgctx.html