工厂模式的C++、Java实现
1、工厂模式UML

图1. 工厂模式UML
2、C++实现
类视图如下:

图2. 工厂模式C++实现的类图
其中,Factory实现为:
//工厂类。
class Factory
{
public:
Factory();
~Factory(); //工厂方法。
virtual Product * Create() = ;
};
ConcreteFactoryA实现为:
//类声明:
class ConcreteFactoryA :
public Factory
{
public:
ConcreteFactoryA();
~ConcreteFactoryA(); Product * Create();
}; //类方法定义
Product * ConcreteFactoryA::Create() {
ConcreteProductA * cpa = new ConcreteProductA(); return cpa;
}//end method Create
ConcreteFactoryB的代码与ConcreteFactoryA的代码相似,不再列出。
3、Java实现
类视图如下:

图3. 工厂模式Java实现的类视图
其中,Factory实现代码是:
//抽象工厂类。
public interface Factory { //抽象工厂方法。
public Product Create();
}//end interface Factory
ConcreteFactoryA的实现代码是:
//具体工厂类,用于创建ConcreteProductA的对象。
public class ConcreteFactoryA implements Factory { @Override
public Product Create() {
// TODO Auto-generated method stub
return new ConcreteProductA();
}//end method Create }//end class ConcreteFactoryA
ConcreteFactoryB的代码与ConcreteFactoryA的相似,不再列出。
工厂模式的C++、Java实现的更多相关文章
- Java设计模式之-----工厂模式(简单工厂,抽象工厂)
一.工厂模式主要是为创建对象提供过渡接口,以便将创建对象的具体过程屏蔽隔离起来,达到提高灵活性的目的. 工厂模式在<Java与模式>中分为三类:1)简单工厂模式(Simple Factor ...
- java 深入浅出工厂模式
一.引子 话说十年前,有一个暴发户,他家有三辆汽车——Benz奔驰.Bmw宝马.Audi奥迪,还雇了司机为他开车.不过,暴发户坐车时总是怪怪的:上Benz车后跟司机说“开奔驰车!”,坐上Bmw后他说“ ...
- 学习:java设计模式—工厂模式
一.工厂模式主要是为创建对象提供过渡接口,以便将创建对象的具体过程屏蔽隔离起来,达到提高灵活性的目的. 工厂模式在<Java与模式>中分为三类: 1)简单工厂模式(Simple Facto ...
- Java设计模式系列之工厂模式
工厂模式将大量有共同接口的类实例化,工厂模式可以实现动态决定实例化哪一个类的对象,工厂模式在<Java与模式>中分为三类:1)简单工厂模式(Simple Factory):添加某一种类型的 ...
- java三种工厂模式
适用场合: 7.3 工厂模式的适用场合 创建新对象最简单的办法是使用new关键字和具体类.只有在某些场合下,创建和维护对象工厂所带来的额外复杂性才是物有所值.本节概括了这些场合. 7.3.1 动态实现 ...
- Java设计模式02:常用设计模式之工厂模式(创建型模式)
一.工厂模式主要是为创建对象提供过渡接口,以便将创建对象的具体过程屏蔽隔离起来,达到提高灵活性的目的. 工厂模式在<Java与模式>中分为三类: 1)简单工厂模式(Simple Fact ...
- 工厂模式Java
一.工厂模式主要是为创建对象提供过渡接口,以便将创建对象的具体过程屏蔽隔离起来,达到提高灵活性的目的. 工厂模式在<Java与模式>中分为三类:1)简单工厂模式(Simple Factor ...
- 简单工厂模式--java代码实现
简单工厂模式 工厂,生产产品的场所.比如农夫山泉工厂,生产农夫山泉矿泉水.茶π等饮料.矿泉水和茶π都属于饮料,都具有解渴的功能,但是每种饮料给人的感觉是不一样的.矿泉水和茶π在Java中相当于子类,饮 ...
- java设计模式—工厂模式
一.工厂模式主要是为创建对象提供过渡接口,以便将创建对象的具体过程屏蔽隔离起来,达到提高灵活性的目的. 工厂模式在<Java与模式>中分为三类:1)简单工厂模式(Simple Factor ...
- Java设计模式——工厂模式
一.工厂模式分类 工厂模式主要是为创建对象提供过渡接口,以便将创建对象的具体过程屏蔽隔离起来,达到提高灵活性的目的. 工厂模式在<Java与模式>中分为三类: (1)简单工厂模式(Simp ...
随机推荐
- jquery源码解析:jQuery延迟对象Deferred(工具方法)详解1
请先看上一课的回调对象.Deferred是通过extend添加到jQuery中的工具方法.如下所示: jQuery.extend({ Deferred: function( func ) { }, w ...
- Python的并发编程
我们将一个正在运行的程序称为进程.每个进程都有它自己的系统状态,包含内存状态.打开文件列表.追踪指令执行情况的程序指针以及一个保存局部变量的调用栈.通常情况下,一个进程依照一个单序列控制流顺序执行,这 ...
- WPF中的DataGridTemplateColumn实现点击列标题排序
在DataGrid中使用模板列时,默认功能中对点击列标题是不对列值进行排序的,要排序就需要添加以下两个属性: 1.CanUserSort="True" 2.SortMemberPa ...
- php中签名公钥、私钥(SHA1withRSA签名)以及AES(AES/ECB/PKCS5Padding)加密解密详解
由于http请求是无状态,所以我们不知道请求方到底是谁.于是就诞生了签名,接收方和请求方协商一种签名方式进行验证,来取得互相信任,进行下一步业务逻辑交流. 其中签名用得很多的就是公钥私钥,用私钥签名, ...
- POJ1475 Pushing Boxes(双搜索)
POJ1475 Pushing Boxes 推箱子,#表示墙,B表示箱子的起点,T表示箱子的目标位置,S表示人的起点 本题没有 Special Judge,多解时,先最小化箱子被推动的次数,再最小化 ...
- IT项目管理者常用的项目管理工具(国产VS进口)?
对于IT项目管理工具相信很多IT项目管理者都不陌生,因为它是我们每天都要接触的,但是在前期选择IT项目管理工具的时候往往是我们最头疼的时候,所以今天我就给大家带来几款常用的国内外IT项目管理工具介绍: ...
- Openfire服务端源代码开发配置指南[转]
转自:http://www.micmiu.com/opensource/openfire/openfire-src-config/ 本文将图文介绍如何把openfire(以3.8.1为例)源码配置 ...
- html中的块与布局
一.div a.会跳行 b.如果想不跳行则设置 style =“display:inline” ,允许它的前后存在其它的内联元素同行显示. c.或者设置为浮动元素,float:left 允许它的右边存 ...
- 【转】IDEA中xml文件头报错:URI is not registered (Settings | Languages & Frameworks | Schemas and DTDs)
有时候在IDEA中配置spring文件时会出现这个错误 URI is not registered (Settings | Languages & Frameworks | Schemas ...
- DataGridView绑定list的注意事项
1.DataGridView数据绑定对比(DataTable与泛型List): 当DataGridView的DataSource是DataTable的时候,DataTable的数据改变时, ...