设计模式--工厂模式--抽象工厂模式

工厂模式有2种:工厂方法模式、抽象工厂模式 
    *工厂方法模式:一个产品系列 
    *抽象工厂模式:一个产品族(包含多个系列)
2.抽象工厂模式的实现:以华为系列手机为例

 - 定义接口(青春版)
    public interface YoungInterface {
        public void drawYoung();
    }
 - 定义接口(标配版)
    public interface StandardInterface {
        public void drawStandard();
    }
 - P9实现(青春版)接口
    public class P9Young implements YoungInterface {
        @Override
        public void drawYoung(){
            System.out.println(-----------------P9青春版-----------------);
        }
    }
 - P8实现(青春版)接口
    public class P8Young implements YoungInterface {
        @Override
        public void drawYoung(){
            System.out.println(-----------------P8青春版-----------------);
        }
    }
 - P9实现(标配版)接口
    public class P9Standard implements StandardInterface {
        @Override
        public void drawStandard(){
            System.out.println(-----------------P9标配版-----------------);
        }
    }
 - P8实现(标配版)接口
    public class P8Standard implements StandardInterface {
        @Override
        public void drawStandard(){
            System.out.println(-----------------P8标配版-----------------);
        }
    }
 - 定义(手机工厂)接口:获取青春版、标配版
    public interface MoblieFactory {
        public YoungInterface getYoung();
        public StandardInterface getStandard();
    }
 - 定义P8工厂类,继承(手机工厂)接口,获取P8系列的青春版、标配版
    public class P8Factory implements MoblieFactory {
        @Override
        public YoungInterface getYoung(){
            return new  P8Young();
        }
        @Override
        public StandardInterface getStandard(){
            return new P8Standard();
        }
    }
 - 定义P9工厂类,继承(手机工厂)接口,获取P9系列的青春版、标配版
    public class P9Factory implements MoblieFactory {
        @Override
        public YoungInterface getYoung(){
            return new  P9Young();
        }
        @Override
        public StandardInterface getStandard(){
            return new P9Standard();
        }
    }
 - 测试类
    public class Test {
        MoblieFactory p9_factory = new P9Factory();
        P9Young p9_young = p9_factory.getYoung();
        p9_young.drawYoung();
    }
 - 测试结果
-----------------P9青春版-----------------

总结:抽象工厂模式,实际是一个产品族,拥有多个产品系列。通过接口的继承以及实现,将单独的产品系列整合成一个产品族。

点赞