当前位置: 首页 > 编程笔记 >

C++:简单工厂模式

祁俊拔
2023-04-24
//抽象类
enum SpliterType {
	BinaryType = 0,
	TxtYype = 1
};

class ISplitter {
public:
	virtual void split() = 0;
	virtual ~ISplitter() {}
};
//具体类
class BinarySplitter : public ISplitter {
public:
	void split() {};
};

class TxtSplitter : public ISplitter {
public:
	void split(){}
};

//工厂基类
class SplitterFactory {
public:
	static ISplitter* CreateSplitter(SpliterType type)
	{
		switch (type)
		{
		case BinaryType:
			return new BinarySplitter();
			break;
		case TxtYype:
			return new TxtSplitter();
			break;
		default:
			break;
		}
	}
};

 类似资料:
  • 活字印刷 面向对象 话说三国时期,曹操带领百万大军攻打东吴,大军在长江赤壁驻扎,军船连成一片,眼看就要灭掉东吴,统一天下,曹操大悦,于是大宴众文武,在酒席间,曹操诗兴大发,不觉吟道:喝酒唱歌,人生真爽。众文武齐呼:“丞相好诗!于是一臣子速命印刷工匠刻板印刷,以便流传天下。” 样张出来给曹操一看,曹操感觉不妥,说到:“喝与唱,此话过俗,应该为‘对酒当歌’较好!”,于是此臣就命工匠重新来过。工匠眼看连

  • 一、简单工厂模式简介 1.定义 简单工厂模式(Simple Factory Pattern):又称为静态工厂方法(Static Factory Method)模式,它属于类创建型模式。在简单工厂模式中,可以根据参数的不同返回不同类的实例。简单工厂模式专门定义一个类来负责创建其他类的实例,被创建的实例通常都具有共同的父类。 2.使用动机 考虑一个简单的软件应用场景:一个软件系统可以提供多个外观不同的

  • 简单工厂(Simple Factory) Intent 在创建一个对象时不向客户暴露内部细节,并提供一个创建对象的通用接口。 Class Diagram 简单工厂把实例化的操作单独放到一个类中,这个类就成为简单工厂类,让简单工厂类来决定应该用哪个具体子类来实例化。 这样做能把客户类和具体子类的实现解耦,客户类不再需要知道有哪些子类以及应当实例化哪个子类。客户类往往有多个,如果不使用简单工厂,那么所

  • 本文向大家介绍C++设计模式之简单工厂模式实例,包括了C++设计模式之简单工厂模式实例的使用技巧和注意事项,需要的朋友参考一下 问题描述 之前在公司做了一个windows 8平台的阅读器。首先,需要将电子书中的内容渲染到屏幕上,而电子书每一页都包含各种各样的内容,比如:图形、图像和文字等等;不同的内容,就是不同的对象;在将不同的内容渲染到屏幕上之前,就需要new操作,建立不同的对象,然后再在屏幕上

  • 3 完整解决方案        为了将Chart类的职责分离,同时将Chart对象的创建和使用分离,Sunny软件公司开发人员决定使用简单工厂模式对图表库进行重构,重构后的结构如图2所示: 图2 图表库结构图        在图2中,Chart接口充当抽象产品类,其子类HistogramChart、PieChart和LineChart充当具体产品类,ChartFactory充当工厂类。完整代码如下

  • 2 简单工厂模式概述        简单工厂模式并不属于GoF 23个经典设计模式,但通常将它作为学习其他工厂模式的基础,它的设计思想很简单,其基本流程如下:        首先将需要创建的各种不同对象(例如各种不同的Chart对象)的相关代码封装到不同的类中,这些类称为具体产品类,而将它们公共的代码进行抽象和提取后封装在一个抽象产品类中,每一个具体产品类都是抽象产品类的子类;然后提供一个工厂类用