zoukankan      html  css  js  c++  java
  • 面试题复习-常用设计模式-抽象工厂模式

    抽象工厂与产品:

    package com.ajax.pattern.abstractfactory;
    
    public interface FruitFactory {
        /**
         * 果肉
         * @return
         */
        Meat getMeat();
    
        /**
         * 果皮
         * @return
         */
        Skin getSkin();
    }
    package com.ajax.pattern.abstractfactory;
    
    public abstract class Meat {
         abstract void desc();
    }
    package com.ajax.pattern.abstractfactory;
    
    public abstract class Skin {
        abstract void desc();
    }

    第一套产品:

    package com.ajax.pattern.abstractfactory;
    
    public class AppleMeat extends Meat {
        @Override
        void desc() {
            System.out.println("苹果肉");
        }
    }
    package com.ajax.pattern.abstractfactory;
    
    public class AppleSkin extends Skin {
        @Override
        void desc() {
            System.out.println("苹果皮");
        }
    }

    第二套产品:

    package com.ajax.pattern.abstractfactory;
    
    public class OrangeMeat extends Meat {
        @Override
        void desc() {
            System.out.println("橙肉");
        }
    }
    package com.ajax.pattern.abstractfactory;
    
    public class OrangeSkin extends Skin {
        @Override
        void desc() {
            System.out.println("橙皮");
        }
    }

    抽象工厂实现:

    package com.ajax.pattern.abstractfactory;
    
    public class AppleFactory implements FruitFactory {
        @Override
        public Meat getMeat() {
            return new AppleMeat();
        }
    
        @Override
        public Skin getSkin() {
            return new AppleSkin();
        }
    }
    package com.ajax.pattern.abstractfactory;
    
    public class OrangeFactory implements FruitFactory {
        @Override
        public Meat getMeat() {
            return new OrangeMeat();
        }
    
        @Override
        public Skin getSkin() {
            return new OrangeSkin();
        }
    }

    运行:

    package com.ajax.pattern.abstractfactory;
    
    public class Run {
        public static void main(String[] args) {
            FruitFactory f1 = new AppleFactory();
            f1.getMeat().desc();
            f1.getSkin().desc();
            FruitFactory f2 = new OrangeFactory();
            f2.getMeat().desc();
            f2.getSkin().desc();
        }
    }
  • 相关阅读:
    ble学习笔记五------------独立按键查询方式
    android深度搜索学习笔记四(硬件抽像hal第一部分)
    ble学习笔记四---------------------控制lcd
    ble学习笔记二-----------------点亮led
    ble学习笔记三---------------------------控制led
    ble学习笔记一---------开发环境搭建
    TI 蓝牙协议栈视频学习笔记
    spring与quart整合实现任务调度_学习笔记
    mongod学习笔记一
    maven学习笔记二
  • 原文地址:https://www.cnblogs.com/caizhiqin/p/11290350.html
Copyright © 2011-2022 走看看