zoukankan      html  css  js  c++  java
  • 设计模式随笔(二):抽象工厂模式

    工厂模式介绍

      工厂模式具体包括:简单工厂,工厂方法,抽象工厂这三种,由简单->复杂,可以理解为把对象的创建过程进行了抽象,也可以理解为将创建对象的过程进行封装,作为client仅仅需要使用对象,而不关心创建对象的具体过程。创建型的设计模式基本都是遵循这样一个原则。

    抽象工厂

    UML图说明

    1.抽象工厂角色:具体工厂必须实现这个接口

    2.具体工厂角色:实现抽象工厂角色接口,具体创建产品的逻辑在实现类完成

    3.抽象产品角色:所有产品的超类,负责实现产品共性的抽象定义

    4.具体产品角色:实现抽象产品角色,负责具体的逻辑和功能

    使用场景

    • 一个系统不依赖于产品线实例如何被创建、组合和表达的细节。

    • 系统中有多于一个的产品线,而每次只使用其中某一产品线。

    • 一个产品线(或是一组没有任何关系的对象)拥有相同的约束。

    我们来造个车吧

    抽象工厂角色:

    /**
     * 抽象工厂接口
     */
    public interface Factory {
    
        /**
         * 传入产品类型参数,返回不同的产品,如:汽车,电脑,食物等
         * @param productType 产品类型
         * @return Product 返回抽象的产品定义
         */
        public Product createProduct(String productType);
    
    }

    具体工厂角色:

      这是个汽车厂

    /**
     * 汽车厂
     **/
    public class CarFactory implements Factory {
        @Override
        public Product createProduct(String productType) {
            System.out.println("开始生产嘀嘀嘀....");
            return new Car();
        }
    }
    

    抽象产品角色:

    public interface Product {
    
        public void product();
    
    }
    

    具体产品角色:

    public class Car implements Product {
    
        @Override
        public void product() {
            System.out.println("这是量跑的飞起的汽车... ...污...污...污...");
        }
    }
    

    测试:

    public class Test {
        public static void main(String[] args) {
            Factory carFactory = new CarFactory();
            Product car = carFactory.createProduct("汽车");
            car.product();
        }
    }
    /*
    输出

    开始生产....汽车
    这是量跑的飞起的汽车... ...污...污...污...

    */

  • 相关阅读:
    DP入门——迷宫行走方案2
    DP入门——迷宫行走方案1
    DFS入门——八皇后问题输出方案
    matplotlib的学习3-figure图像
    matplotlib的学习2-基本用法
    matplotlib的学习1-为什么学他
    numpy的好处
    pandas的学习8-pandas-plot出图
    pandas的学习6-合并concat
    pandas的学习5-导入导出数据
  • 原文地址:https://www.cnblogs.com/chylcblog/p/13229439.html
Copyright © 2011-2022 走看看