zoukankan      html  css  js  c++  java
  • 工厂模式总结

    一. Builder模式

    用于构建复杂对象,将复杂对象的构建与表示分离。主要对象有Director导向器,Builder生成器,最终要生成的Product对象。

    着重于Director按步骤一步一步构建出最终对象。Builder有一个类层次

    理解模式和模式适用范围:

    1. 表示与构建分离。Director代表着整体的全局表示,Builder代表每一个局部对象的构建。

    2. 生成的最终对象是比较复杂的,复杂Product对象允许有不同的表示。这时,可以考虑Builder模式。

    举例:创建游戏的迷宫,Builder负责创建Maze类(迷宫)对象本身,创建由4面Wall组成的Room对象,以及Room对象之间的Door对象。但是以怎样一种布局结构、怎么样的步骤来创建最终的复杂对象Maze,则有Game对象(Direcotor导向器)对象负责。

    二. 抽象工厂abstract factory

    用于创建一系列相关或相互赖的对象,通常用工厂方法实现。

    举例:考虑构建一辆汽车,汽车的组成部分是一样的,有方向盘,座位,轮胎,发动机。但是每个零件不尽相同,而且风格也不一样,有汽车,商务车,越野车,家用车。可以用商务车工厂,越野车工厂,家用车工厂分别创建不同风格的汽车。

    与Builder模式的区别:

    Builder模式允许构建的对象可以有不同的表示,构造步骤更复杂,甚至是变化的。抽象工厂构建的对象的表示是相对固定的,变化的是每个组成部分的实现和表示。

    三. 工厂方法

    placeholder

    总结:Builder工作在相对高的层次,其次是抽象工厂,工作在最底层的是工厂方法。

  • 相关阅读:
    invalid expression: missing ) after argument list in xxx 或者 console.error(("[Vue warn]: " + msg + trace));
    js的alert()
    第9节列表渲染
    第8节条件渲染
    第7节class与style绑定
    CF1215D Ticket Game 博弈论
    CF833A The Meaningless Game 思维
    蚯蚓 队列
    洛谷P2566[SCOI2009]围豆豆
    ants 思维
  • 原文地址:https://www.cnblogs.com/dirichlet/p/3322588.html
Copyright © 2011-2022 走看看