zoukankan      html  css  js  c++  java
  • 努力吧.关于工厂模式(一)

    ABSTRACT FACTORY 抽象工厂模式 

    其实用配电脑来解释会比较容易理解

    我有一张空白的电子表格 -------------这是一个抽象工厂
    表格里需要填入cpu 主板等 -----------这些是抽象产品

    然后这是--------------------------------具体产品

    cpu 有intel CPU amdCPU
    主板有 华硕主板 技嘉主板

    我已经写好了几种配置,这是-------------具体工厂
    第一种 cpu intel CPU
    主板 华硕主板

    第二种 cpu amd CPU
    主板 技嘉主板

    需要哪种配置,就复制一张配置单,需按配置单取产品


    这里每一张配置单可以当成一个工厂,当有多种配置的时候,就有多个工厂了。最后由工厂中的方法得到的都是一台完整的电脑

    有一点是否应该这样更解,在抽象工厂模式中,这里工厂只是负责生产,并不是持有?就是说每一次通过同一个工厂实例取得的cpu都是一个新的CPU.





    另一个例子
    例如

    我需要得到 笔和纸, 笔分为 圆珠笔 毛笔, 纸分为 作业本 练习本 。

    抽象工厂类 工厂
      具体工厂类     做作业  练字

    具体笔工厂类 作业工厂

    具体纸工厂类 练字工厂


    抽象笔
    public interface pen
    {

    }

    抽象本子
    public interface Book
    {

    }


    抽象工厂
    public interface Factory

    {
    public Pen createPen(String name);
    public Book createBook(String name);
    }


    具体笔

    圆珠笔
    public class BallPen implements Pen
    {
      private String name;
      public BallPen (String name)
      {

      }
    }

    毛笔
    public class BrushPen implements Pen
    {
      private String name;
      public BrushPen(String name)
      {

      }
    }

    具体本子
    作业本
    public class WorkBook implements Book
    {
      private String name;
      public WorkBook(String name)
      {

      }
    }

    练习本
    public class ExerciseBook implements Book
    {
      private String name;
      public ExerciseBook(String name)
      {

      }
    }

    具体作业工厂
    public class WorkFactory implements Factory
    {
    public Pen createPen(String name)
    {
    return new BallPen(name);
    }

    public Book createBook(String name)
    {
    return new WorkBook(name);
    }
    }

    具体练字工厂
    public class ExerciseFactory implements Factory
    {
    public Pen createPen(String name)
    {
    return new BrushPen(name);
    }

    public Book createBook(String name)
    {
    return new ExerciseBook(name);
    }
    }

    在这里工厂的工作就是生产某种组件,有多少种组件组合,就需要多少个具体工厂,例如我可以用圆珠笔和练习本组成一个工厂。



  • 相关阅读:
    [android开放篇] wifi-direct接口网址
    [adb 连接不上的原因] 汇总
    SharePoint 2010 master page 控件介绍(1)
    Sharepoint 2010 根据用户权限隐藏Ribbon菜单
    How to: Hide the Ribbon in SharePoint 2010
    sharepoint2010网站根据权限隐藏ribbon
    SharePoint 2010 master page 控件介绍(2):ribbon (一同事读听着像泪奔)
    SharePoint 2010 Ribbon的实现
    为SharePoint网站创建自定义导航菜单
    Sharepoint 2010 用VS定制Master,并且每个Web应用同一个Master
  • 原文地址:https://www.cnblogs.com/meieiem/p/2331933.html
Copyright © 2011-2022 走看看