class Fruit { public: virtual void get_fruit() { std::cout<<"Fruit:getFruit"<<std::endl; } }; class Pear : public Fruit { public: virtual void get_fru... ...
分类:
其他好文 时间:
2018-10-08 20:42:20
阅读次数:
148
1、工厂方法模式 工厂方法模式是类的创建模式,又叫做虚拟构造子模式或者多态性工厂模式。工厂方法模式的用意是定义一个创建产品对象的工厂接口,将实际工作推迟到子类中。 1.1、什么是工厂方法模式 工厂方法模式是简单工厂模式的进一步抽象和推广。由于使用了多态性,工厂方法模式保持了简单工厂模式的优点,而且克 ...
分类:
其他好文 时间:
2018-10-06 14:32:17
阅读次数:
258
1、简单工厂模式 1.1、什么是简单工厂模式 简单工厂模式是类的创建模式,又叫做静态工厂方法模式。简单工厂模式是由一个工厂对象决定创建出哪一类产品类的实例。由一个工厂类根据传入的参数来决定创建出哪一种产品类的实例。 1.2、简单工厂模式的结构 工厂类(Creator)角色:工厂方法模式的核心,含有与 ...
分类:
其他好文 时间:
2018-10-05 21:31:13
阅读次数:
175
工厂模式基本与简单工厂模式差不多,在简单工厂中,每次添加一个产品子类都必须在工厂类中添加一个判断分支,这样违背了开放-封闭原则,因此,工厂模式就是为了解决这个问题而产生的。 既然每次都要判断,那我就把这些判断都生成一个工厂子类,这样,每次添加产品子类的时候,只需再添加一个工厂子类就可以了。这样就完美 ...
分类:
其他好文 时间:
2018-10-05 17:25:48
阅读次数:
165
简单工厂模式: 常用的场景 例如部署多种数据库的情况,可能在不同的地方要使用不同的数据库,此时只需要在配置文件中设定数据库的类型,每次再根据类型生成实例,这样,不管下面的数据库类型怎么变化,在客户端看来都是只有一个AbstractProduct,使用的时候根本无需修改代码。提供的类型也可以用比较便于 ...
分类:
其他好文 时间:
2018-10-05 17:16:23
阅读次数:
118
简单工厂模式属于类的创建型模式,又叫静态工厂方法模式。通过站门定义一个类来负责创建其他类的实例,被创建的实例通常具有共同的父类。 1.工厂角色:简单工厂模式的核心,他负责实现创建所有实例的内部逻辑,工厂类可以被外界直接调用,创建所需的产品对象。 2.抽象角色:简单工厂所创建的所有对象的父类,它负责描 ...
分类:
其他好文 时间:
2018-10-05 16:10:53
阅读次数:
121
定义:定义一个用于创建对象的接口,让子类决定实例化哪一个类,工厂方法使一个类的实例化延迟到其子类。 类型:创建类模式 类图: 工厂方法模式代码 工厂模式: 首先需要说一下工厂模式。工厂模式根据抽象程度的不同分为三种:简单工厂模式(也叫静态工厂模式)、本文所讲述的工厂方法模式、以及抽象工厂模式。工厂模 ...
分类:
其他好文 时间:
2018-10-04 23:50:07
阅读次数:
191
简单工厂其实不是一个设计模式,反而像是一种编程习惯,我们来通过它引出工厂设计模式。 先来看一张类图 pizza类 package com.DesignPatterns.ad.factory1; import java.util.ArrayList; abstract public class Piz... ...
分类:
其他好文 时间:
2018-10-04 11:32:01
阅读次数:
237
一、定义:由一个工厂对象决定创建出哪一种产品类的实例 二、类型:创建型,但不属于GOF23种设计模式 三、适用场景: 工厂类负责创建的对象比较少 客户端(应用层)只知道传入工厂类的参数,对于如何创建对象(逻辑)不关心。 四、优点: 只需要传入一个正确的参数,就可以获取你所需要的对象,而无须知道其创建 ...
分类:
其他好文 时间:
2018-10-04 11:05:46
阅读次数:
149
一、简单工厂模式 1、内容 2、角色 3、优点 4、缺点 二、工厂方法模式 1、内容 不直接向客户端暴露对象创建的实现细节,而是通过一个工厂类来负责创建产品类的实例 2、角色 1、工厂角色(Factory) 2、抽象产品角色(Product) 3、具体产品角色(Concrete Product) 3 ...
分类:
其他好文 时间:
2018-10-01 11:51:38
阅读次数:
132