• 工厂方法模式(设计模式_08)


    工厂方法模式遵循了,开放封闭式原则,我们直接用案例来体现:

    // 定义一个电脑接口
    public interface IComputer {
    
        // 获取电脑组件的方法
        public void myStyle();
    
    }
    
    // 电脑适配器实现电脑接口
    public class Adapter implements IComputer{
    
        public void myStyle() {
            System.out.println("这是电脑的充电器....");
        }
    
    }
    
    // 电脑主板实现电脑
    public class Board implements IComputer {
    
        public void myStyle() {
            System.out.println("这是电脑主板...");
        }
    
    }
    
    // 显示屏类实现电脑
    public class Display implements IComputer{
    
        public void myStyle() {
            System.out.println("这是电脑显示屏...");
        }
    
    }
    

    此时切换到工厂方法模式区域

    // 定义工厂接口,此工厂接口可以制作很多东西,例如 电脑,平板,手机,等等....
    
    public interface IFactory {
    
        /**
         * 定义制造电脑的函数
         * @return 返回电脑接口
         */
        public IComputer getComputer();
    
    }
    
    // 工厂实现工厂接口
    public class Factory implements IFactory {
    
        public IComputer getComputer() {
            // 这个Computer类,下面区域有介绍到
            return new Computer(new Display(), new Board(), new Adapter());
        }
    
    }
    
    // Computer类
    // 电脑类实现电脑接口 == 一台电脑
    public class Computer implements IComputer{
    
        // public Computer(){};
    
        private Display engine;
        private Board underpan;
        private Adapter wheel;
    
        public Computer(Display engine, Board underpan, Adapter wheel){
            this.engine = engine;
            this.underpan = underpan;
            this.wheel = wheel;
        }
    
        public void myStyle() {
            engine.myStyle();
            underpan.myStyle();
            wheel.myStyle();
        }
    
    }
    
    // 客户端程序
    public class Main {
    
        public static void main(String [] args) {
    
            // 得到工厂
            IFactory factory = new Factory();
    
            // 调用工厂去制作电脑
            IComputer car = factory.getComputer();
    
            car.myStyle();
    
        }
    
    }

    运行结果:
    这里写图片描述


    谢谢大家的观看,更多精彩技术博客,会不断的更新,请大家访问,
    刘德利CSDN博客, http://blog.csdn.net/u011967006

  • 相关阅读:
    第1章:路线图
    第0章:战胜恐惧和懊悔
    c++ 变量 定义 声明
    两个无符号数相减 可以得到负数
    c++ cast operator(类型转换操作符)
    C++中static 的使用方式,以及与c中的static的区别
    重载overload 重写override 重定义redefining
    用到位运算的题目
    C++ 虚函数表解析
    虚函数 动态绑定 实现方式是:虚函数表
  • 原文地址:https://www.cnblogs.com/android-deli/p/10322221.html
Copyright © 2020-2023  润新知