1  2 {<HeadFirst设计模式>工厂模式之抽象工厂 }  3 { 抽象工厂的产品                       }  4 { 编译工具:Delphi7.0                  }  5 { E-Mail :guzh-0417@163.com          }  6  7unit uPizzaIngredient;  8  9interface 10 11type 12  TDough = class(TObject) 13  end; 14 15  …
一.概述 抽象工厂模式是指当有多个抽象角色时,使用的一种工厂模式.抽象工厂模式可以向客户端提供一个接口,使客户端在不必指定产品的具体情况下,创建多个产品族中的产品对象. UML图: 其他的过多概念不再这里赘述,不如通过例子来实际感受与体会 二.实践 关键是搞清等级族的概念,这里以生产手机为例,假设生产小米5和小米6两个型号的手机,两个手机都有内存和处理器,但是内存和处理器的组合不同 :米5采用的是骁龙820+16G内存组合,而米6则是骁龙835+32G组合.生产对应产品的时候就会匹配对应的产品部…
1.前言 上一篇写了设计模式原则有助于我们开发程序的时候能写出高质量的代码(牵一发而不动全身),这个系列还是做个笔记温习一下各种设计模式,下面就看看简单工厂模式.工厂模式.抽象工厂模式. 2.简单工厂模式 其实我们可以这么理解简单工厂模式,就是专门负责生产对象的一个类,作用就是创建具体产品的实例.我们平时创建创建一个对象的时候通常都是new出来的,此时这个类就依赖与这个对象,说白了就是耦合度过高啦.需求变化的时候我们不得不去修改此类的源码.这时候就要用面向对象(OO)的思想去处理这个问题.把变化…
上一节我们已经学习了原型模式,稍微复习一下:通过重写Object 类的clone() 方法实现浅克隆,浅克隆也要实现Cloneable 标记接口.而深克隆则是将对象通过序列化和反序列化 的方式进行创建和还原. 本小结将学习的是工厂模式,这个模式在平时是特别常用的,还需好好理解.我也将举一些例子给大家 . 从生活出发 假设我们今天不想做饭,想出去吃饭.肯定选定一家好吃的川菜馆,然后我们找好位置坐下,给厨师说,我想吃糖醋排骨. 稍微等待几分钟.菜就可以做好,然后给你呈上来. 这是一个很经典的例子,我…
话说有三大潮牌公司一直相互PK,有一天举办了一个活动让这三大公司来一个PK,我们来看看哪家公司的上衣做出来好看穿得舒服 现在我们有一个上衣的抽象产品让三大公司来做 //抽象产品 public interface Jacket { //上衣 void Jk(); } 三大公司就开始设计上衣 //CDS公司 public class CDS : Jacket { public void Jk() { Console.WriteLine("我是CDS上衣"); } } //KKW公司 pub…
一. 工厂方法(Factory Method)模式 工厂方法(FactoryMethod)模式是类的创建模式,其用意是定义一个创建产品对象的工厂接口,将实际创建工作推迟到子类中. 工厂方法模式是简单工厂模式的进一步抽象和推广.由于使用了多态性,工厂方法模式保持了简单工厂模式的优点,而且克服了它的缺点. 在工厂方法模式中,核心的工厂类不再负责所有产品的创建,而是将具体创建工作交给子类去做.这个核心类仅仅负责给出具体工厂必须实现的接口,而不接触哪一个产品类被实例化这种细节.这使得工厂方法模式可以允许…
一.工厂模式主要是为创建对象提供过渡接口,以便将创建对象的具体过程屏蔽隔离起来,达到提高灵活性的目的. 工厂模式在<Java与模式>中分为三类:1)简单工厂模式(Simple Factory):不利于产生系列产品:2)工厂方法模式(Factory Method):又称为多形性工厂:3)抽象工厂模式(Abstract Factory):又称为工具箱,产生产品族,但不利于产生新的产品:             这三种模式从上到下逐步抽象,并且更具一般性.             GOF在<设…
相比简单工厂模式, 只有一个工厂 能生产的手机也是固定的 抽象工厂模式类似于有很多家工厂, 当用户要买什么手机就创建对应的工厂去生产 比如用户要买iPhone就创建一个Apple工厂来生产手机, 要买Android手机就创建一个Goolge工厂 这样创建工厂, 工厂, 用户这样就是我们要考虑的因素 (其实还有手机, 这里就跳过不讲了跟简单工厂模式里面一样) 创建工厂要有一个管理对象, 来根据客户的需求自动创建相应的工厂 工厂只要负责生产手机就好了 现在来构建代码 先写一个基本工厂模型 BaseF…
简介 1.简单工厂,或静态工厂,产品接口 定义:专门定义一个类来负责创建其他类的实例,被创建的实例通常具有共同的父类或实现同一接口 优点:客户端可以直接消费产品,而不必关心具体产品的实现(不关心对象的构造方法是怎么new的),消除了客户端直接创建产品对象的责任,实现了对责任的分割. 缺点:工厂类记录了所有产品的创建逻辑,一旦不能正常工作,整个系统都会受到影响:而且当产品种类多.结构复杂的时候,把所有创建工作放进一个工厂中来,会使后期程序的扩展较为困难. 2.工厂方法,工厂接口+产品接口 定义:在…
一.工厂模式(分为:简单工厂模式.工厂方法模式.抽象工厂模式) 实现了创建者和调用者的分离 核心本质:1.实例化对象,用工厂方法代替new操作:2.将选择实现类.创建对象统一管理和控制,从而将调用者跟实现类解耦. 简单工厂模式:用来生产同一等级结构中的任意产品(对于增加的新的产品,需要修改已有代码) 工厂方法模式:用来生产同一等级结构中的固定产品(支持增加任意产品) 抽象工厂模式:用来生产不同产品族中的全部产品(对于增加新的产品,无能为力.支持增加新的产品族) [扩展]面向对象设计的基本原则(核…