• 抽象工厂模式


    抽象工厂模式

    一、简介

    定义:为创建一组相关或者相互依赖的对象提供一个接口,而无需指定它们的具体类。

    二、使用场景

    一个对象族有相同约束时可以使用抽象工厂模式。系统中有多于一个的产品线,而每次只使用其中某一产品线时同样可以使用抽象工厂模式。

    三、抽象工厂模式的简单实现

    //抽象工厂类
    public abstract class ComputerFactory{
        public abstract IOs createOs();
        public abstract IDisplay createDisplay();
    
    }
    
    //os相关类
    public interface IOs {
        void os();
    }
    
    public class highVersion implements IOs{
    
        @Override
        public void os() {
            Log.i(TAG, "os: Version 10.15.5");
        }
    }
    
    public class lowVersion implements IOs{
    
        @Override
        public void os() {
            Log.i(TAG, "os: Version 10.10.1");
        }
    }
    
    //display相关类
    public interface IDisplay {
        void display();
    }
    
    public class normalDisplay implements IDisplay{
    
        @Override
        public void display() {
            Log.i(TAG, "display: Display size 13.3");
        }
    }
    
    public class proDisplay implements IDisplay{
    
        @Override
        public void display() {
            Log.i(TAG, "display: Display size 15.4");
        }
    }
    
    //具体工厂类
    public class normalFactory extends ComputerFactory{
    
        @Override
        public IOs createOs() {
            return new lowVersion();
        }
    
        @Override
        public IDisplay createDisplay() {
            return new normalDisplay();
        }
    }
    
     //具体工厂类
    public class proFactory extends ComputerFactory{
    
        @Override
        public IOs createOs() {
            return new highVersion();
        }
    
        @Override
        public IDisplay createDisplay() {
            return new proDisplay();
        }
    }
    
    //测试
    public void Test(){
        ComputerFactory normal=new normalFactory();
        normal.createOs();
        normal.createDisplay();
        
        ComputerFactory pro=new proFactory();
        pro.createOs();
        pro.createDisplay();
    }
    

    上面只有两个具体的工厂类,如果需要增加工厂类那么对应的os和display也需要增加从而导致类的数量徒增这是抽象工厂模式的一个弊端

  • 相关阅读:
    Running ROS on Windows 10
    Roomblock: a Platform for Learning ROS Navigation With Roomba, Raspberry Pi and RPLIDAR(转)
    Understand:高效代码静态分析神器详解(转)
    VMware下ubuntu与Windows实现文件共享的方法
    Install rapyuta client on Ubuntu14.04
    Install rapyuta client on Raspberry Pi
    Installing ROS Indigo on the Raspberry Pi
    Shrinking images on Linux
    How to emulate a Raspberry Pi on your PC
    Remastersys打包你自己的ubuntu成iso文件
  • 原文地址:https://www.cnblogs.com/Robin132929/p/13787405.html
Copyright © 2020-2023  润新知