工厂方法模式

原创 2018年04月15日 16:24:01

    工厂方法模式 , 一个产品多个工厂 , 每个工厂有一个抽象工厂 , 抽象工厂继承产品工厂 .

    好处在于能够很方便的扩展工厂 


/*************************************************************************
	> File Name: define_1.h
	> Author: Code4
	> Mail: 1614652215@qq.com 
	> Created Time: 2018年04月15日 星期日 09时43分57秒
 ************************************************************************/
//工厂方法模式
//有一个产品 ,被两个工厂制造 ,
// 使用抽象工厂 , 生成两个抽象工厂 , 分别两个工厂进行调用
#pragma once
#include "iostream"

using namespace std;
//产品1
class UTable{
	public :
		virtual int Find() = 0 ;
		virtual int Add() = 0 ;
};
//工厂1
class MUtable : public UTable{
	public :
		int Find () ;
		int Add() ;
};
//工厂2
class SUtable : public UTable{
	public :
		int Find()  ;
		int Add()  ;
};

//抽象工厂
class Abs_Factory {
	public :
		virtual	UTable *Create_Product() = 0;
};

//抽象工厂1
class M_Factory : public Abs_Factory {
	public :
		UTable *Create_Product() ;
};
//抽象工厂2
class S_Factory : public Abs_Factory {
	public :
		UTable *Create_Product() ;
};


/*************************************************************************
	> File Name: index_1.cpp
	> Author: Code4
	> Mail: 1614652215@qq.com 
	> Created Time: 2018年04月15日 星期日 09时44分23秒
 ************************************************************************/
#include "iostream"
#include "define_1.h"

using namespace std ;

int MUtable :: Find (){
	cout<< "MU table find"<<endl ;
	return 0 ;
}

int MUtable :: Add(){
	cout<<"MU table Add"<<endl ;
	return 0 ;
}

int SUtable :: Find (){
	cout<<"SU table Find"<<endl ;
	return 0;
}

int SUtable :: Add(){
	cout<<"SU table Add"<<endl ;
	return 0;
}

UTable * M_Factory :: Create_Product(){
	return new MUtable() ;
}

UTable * S_Factory :: Create_Product(){
	return new SUtable() ;
}


/*************************************************************************
	> File Name: main.cpp
	> Author: Code4
	> Mail: 1614652215@qq.com 
	> Created Time: 2018年04月15日 星期日 09时44分39秒
 ************************************************************************/
#include "iostream"
#include "define_1.h"
#include "index_1.cpp"

using namespace std ;

int main(){
	Abs_Factory *l = new M_Factory() ;
	UTable * n = l->Create_Product() ;
	n->Find() ;
	return 0 ;
}

版权声明:Good read Good mode Good mood https://blog.csdn.net/Hcode4/article/details/79947460

Java设计模式之——工厂方法模式

工厂方法模式简单介绍工厂方法模式是创建型设计模式之一。工厂方法模式是一种结构简单的模式,其在我们平时开发中应用很广泛。如 Android 中的 Activity 里的各个生命周期方法,以 onCrea...
  • AkaiC
  • AkaiC
  • 2016-10-29 22:20:44
  • 321

初识工厂设计模式

初识工厂设计模式这篇文章是我拜读完许多高手博客之后所记录的笔记,意义在于自己总结,想了解更多可以点击这里1、什么是工厂设计模式​ 根据搜索引擎,在面向对象程序设计中,工厂通常是一个用来创建其他对象...
  • YIII_TIAN
  • YIII_TIAN
  • 2017-12-12 19:50:17
  • 47

工厂方法模式(Factory Method)-最易懂的设计模式解析

前言在上文提到的最易懂的设计模式系列解析:简单工厂模式,发现简单工厂模式存在一系列问题: 工厂类集中了所有实例(产品)的创建逻辑,一旦这个工厂不能正常工作,整个系统都会受到影响; 违背“开放 - 关闭...
  • carson_ho
  • carson_ho
  • 2016-08-28 08:31:39
  • 7128

对工厂方法模式的理解

工厂方法模式,我想这里取名工厂方法模式,它的作用就是对这样一种抽象的架构进行一个基于场景的解释,所以我们在使用设计模式的时候,只要碰到了结构相似的情况,我们就可以套用这种设计模式,甚至是对这种设计模式...
  • wujiang88
  • wujiang88
  • 2016-01-21 16:33:27
  • 389

java/android 设计模式学习笔记(3)---工厂方法模式

这篇来介绍一下工厂方法模式(Factory Method Pattern),在实际开发过程中我们都习惯于直接使用 new 关键字用来创建一个对象,可是有时候对象的创造需要一系列的步骤:你可能需要计算或...
  • zhao_zepeng
  • zhao_zepeng
  • 2016-05-21 20:36:40
  • 9174

简单工厂模式和工厂方法模式的区别

本文举了一个计算器的例子,该例子实现的功能是加减乘除的功能。 简单工厂模式:就是如何去实例化对象的问题,对于很容易变化的问题,应该考虑用一个单独的类来做这个创造实例的过程,这就是工厂。例子如下:pa...
  • abc709272013
  • abc709272013
  • 2016-09-24 22:33:02
  • 1987

工厂方法模式VS简单工厂模式

转发请注明出处:http://blog.csdn.net/qq_28055429/article/details/51628921One----简单工厂模式:一,基本知识:(1)定义:简单工厂模式是属...
  • qq_28055429
  • qq_28055429
  • 2016-06-10 23:14:46
  • 2427

简单工厂模式、工厂方法模式、抽象工厂模式 之间的对比

简单工厂模式、工厂方法模式、抽象工厂模式 之间的对比
  • u013761036
  • u013761036
  • 2016-06-23 20:10:45
  • 2526

Java设计模式—工厂方法模式&抽象工厂模式

工厂方法模式与抽象工厂模式都是设计模式中重要而且常见的模式。 通用类图如下:         在工厂方法模式中,抽象产品类Product负责定义产品的共性,实现对事物最抽象的定义;C...
  • qq_25827845
  • qq_25827845
  • 2016-09-11 15:07:17
  • 6154

创建型模式:工厂方法模式(Factory Method)--分析优缺点

转载地址:http://blog.csdn.net/lingyun_blog/article/details/41450085 请MM去麦当劳吃汉堡,不同的MM有不同的口味,要每个都记住是一件烦人的...
  • qq_25551295
  • qq_25551295
  • 2015-11-14 18:05:26
  • 529
收藏助手
不良信息举报
您举报文章:工厂方法模式
举报原因:
原因补充:

(最多只允许输入30个字)