美文网首页
抽象工厂模式

抽象工厂模式

作者: 863cda997e42 | 来源:发表于2018-03-02 14:18 被阅读5次

    抽象工厂模式

    
    public abstract class AbstractProductA {
        public void shareMethod(){
            
        }
        
        public abstract void doSomething();
    }
    
    public abstract class AbstractProductB {
        public void shareMethod() {
    
        }
    
        public abstract void doSomething();
    }
    
    public class ProductA1 extends AbstractProductA{
    
        public void doSomething(){
            System.out.println("产品A1的实现方法");
        }
    }
    
    public class ProductA2 extends AbstractProductA{
        public void doSomething(){
            System.out.println("产品A2的实现方法");
        }
    }
    
    public class ProductB1 extends AbstractProductB{
        public void doSomething(){
            System.out.println("产品B1的实现方法");
        }
    }
    
    public class ProductB2 extends AbstractProductB{
        public void doSomething(){
            System.out.println("产品B2的实现方法");
        }
    }
    
    public abstract class AbstractCreator {
    
        public abstract AbstractProductA createProductA();
        public abstract AbstractProductB createProductB();
    }
    
    public class Creator1 extends AbstractCreator{
    
        public AbstractProductA createProductA(){
            return new ProductA1();
        }
        public AbstractProductB createProductB(){
            return new ProductB1();
        }
    }
    
    public class Creator2 extends AbstractCreator{
    
        public AbstractProductA createProductA(){
            return new ProductA2();
        }
        public AbstractProductB createProductB(){
            return new ProductB2();
        }
    }
    
    public class Client {
    
        public static void main(String[] args){
            AbstractCreator creator1 = new Creator1();
            AbstractCreator creator2 = new Creator2();
            
            AbstractProductA a1 = creator1.createProductA();
            AbstractProductA a2 = creator2.createProductA();
            AbstractProductB b1 = creator1.createProductB();
            AbstractProductB b2 = creator2.createProductB();
            a1.doSomething();
            a2.doSomething();
            b1.doSomething();
            b2.doSomething();
        }
    }
    
    
    

    相关文章

      网友评论

          本文标题:抽象工厂模式

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