再谈简单工厂模式,工厂方法模式,抽象工厂模式
摘要:简单工厂模式基本简介 从设计模式的类型上来说,简单工厂模式是属于创建型模式,又叫做静态工厂方法(Static Factory Method)模式,但不属于23种GOF设计模式之一。简单工厂模式是由一个工厂对象决定创建出哪一种产品类的实例。简单工厂模式是工厂模式家族中最简单实用的模式,可以理解为是不同工厂模式的一个特殊实现。 实现方式(附图) 简单工厂模式的UML类图(见右图) 简单工厂模式的实质是由一个工厂类根据传入的参数,动态决定应该创建哪一个产品类(这些产品类继承自一个父类或接口)的实例。 该模式中包含的角色及其职责 工厂(Creator)角色 简单工厂模式的核心,它负责实现...
阅读全文
posted @
2012-11-21 10:55
bitbit
阅读(357)
推荐(0) 编辑
OO原则 - 面向对象的设计原则
摘要:封装变化多用组合,少用继承针对接口编程,不针对实现编程为交互对象之间的松耦合设计而努力类应该对扩展开放,对修改关闭依耐抽象,不要依耐具体类只和朋友交谈别找我,我会找你类应该只有一个改变的理由
阅读全文
posted @
2012-11-20 19:53
bitbit
阅读(307)
推荐(0) 编辑
不要写完代码就束之高阁,适当地优化代码结构,能够为以后的开发带来许多方便,这《重构:改善既有代码的设计》就向你介绍了这方面的技巧,说得非常详细。
摘要:“不要写完代码就束之高阁,适当地优化代码结构,能够为以后的开发带来许多方便,这《重构:改善既有代码的设计》就向你介绍了这方面的技巧,说得非常详细。” “程序几乎离不开重构,但如何更加迅速有效地重构却一直没有系统性的指导。《重构:改善既有代码的设计》就是这样的经典巨著,有了它,重构不再烦琐!”软件开发的不朽经典,生动阐述重构原理和具体做法,普通程序员进阶到编程高手必须修炼的秘笈。重构,一言以蔽之,就是在不改变外部行为的前提下,有条不紊地改善代码。多年前,正是《重构:改善既有代码的设计》原版的出版,使重构终于从编程高手们的小圈子走出,成为众多普通程序员日常开发工作中不可或缺的一部分。《重构:改善既
阅读全文
posted @
2012-11-20 14:35
bitbit
阅读(872)
推荐(0) 编辑
设计模式之实现---适配器模式
摘要:/*****************************************CSlot.h****************************************/#include using namespace std;//两相的插头基类class CTwoSlotsPlug{public:virtual void plugIn2Slots() = 0;};//一个实插头类:红色的二相插头class CRed2SlotsPlug : public CTwoSlotsPlug{public:void plugIn2Slots(){coutplugIn2Slots();}};//
阅读全文
posted @
2012-11-06 11:19
bitbit
阅读(309)
推荐(0) 编辑
设计模式之实现---模版方法模式
摘要:/*****************************************baseobject.h******************************************//*@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@我这里写一个非常实用的例子,是我的一个项目的对象基类构造函数的超级简化版本.这个对象的基类构造函数会调用一个initailize函数来初始化一个对象.该initailize中有很多步骤,每一个都由其子类来决定如何初始化@@@@@@@@@@@@@@@@@@@@@@@@@@@@@
阅读全文
posted @
2012-11-06 11:06
bitbit
阅读(250)
推荐(0) 编辑
设计模式之实现---单件模式
摘要:/*************************************CSingleton.h**************************************/#pragma once#include #include using namespace std;class CSingleton{private:CSingleton(){coutusing namespace std;class testSingleton{public:testSingleton(){CSingleton::getSingleton();cout#include "CSingleton
阅读全文
posted @
2012-11-06 11:02
bitbit
阅读(181)
推荐(0) 编辑
设计模式之实现迭代器模式
摘要:/***********************************baseobject.h***********************************/#pragma once#include #include #include #include "CIterator.h"#define MAX_ARRAY_SIZE 100using namespace std;//前置定义class CIteratorInterface;class CElectricIterator;////////////////////////////////////////////
阅读全文
posted @
2012-11-06 10:58
bitbit
阅读(302)
推荐(0) 编辑
设计模式之实现---状态模式
摘要:/************************************************************CStatePattern.h************************************************************/#pragma once#include using namespace std;class CState;class CSoldState;class CSoldOutState;class CNoQuarterState;class CHasQuarterState;//游戏机class CGumballMachine{
阅读全文
posted @
2012-11-06 10:52
bitbit
阅读(247)
推荐(0) 编辑
设计模式之实现---策略模式
摘要:/****************************************************************CCharactor.h****************************************************************/#pragma once#include "CWeapon.h"////////////////////////////////////////////////////////这是人物类的纯虚基类class CCharactor{protected://多用组合,少用继承。 //这里使用策略模式
阅读全文
posted @
2012-11-06 10:43
bitbit
阅读(246)
推荐(0) 编辑
设计模式之实现---命令模式
摘要:/**********************************************************************CCommand.h**********************************************************************/#pragma once#include "Objects.h"#include using namespace std;//命令对象类的基类class CCommand{public:virtual void execute() = 0;};//空命令对象,什么都不做。只实
阅读全文
posted @
2012-11-06 10:40
bitbit
阅读(275)
推荐(0) 编辑
设计模式之实现---装饰者模式
摘要:/*****************************************************component.h****************************************************/#pragma once#include #include using namespace std;///////////////////////////////组件类的基类//1. 所有组件全都派生自这个组件//2. 装饰都类的纯虚基类也派生自这个组件class CBaverage{protected:string m_description;float m_
阅读全文
posted @
2012-11-06 10:36
bitbit
阅读(292)
推荐(0) 编辑
设计模式之实现---组合模式
摘要:/******************************************************baseobject.h******************************************************/#pragma once#include #include #include #include "CIterator.h"#define MAX_ARRAY_SIZE 100using namespace std;//前置定义class CIteratorInterface;class CElectricIterator;//////
阅读全文
posted @
2012-11-06 10:30
bitbit
阅读(461)
推荐(0) 编辑
设计模式之实现---外观模式
摘要:有些时候,我们需要把一大堆复杂的接口简化后呈现给用户。/****************************************************CEquipments.h****************************************************//*电视、空调、电脑、DVD机、音箱等设备*/#pragma once#include using namespace std;class CTV{public:void start(){coutstart(); m_Aircondition->start(); m_pc->start(); m
阅读全文
posted @
2012-11-06 10:23
bitbit
阅读(322)
推荐(0) 编辑
设计模式之实现---观察者模式
摘要:/**********************************************************CPaper.h**********************************************************/#pragma once#include #include using namespace std;class CPaper{public:string context;public:CPaper(){}CPaper(const string& _cont){context = _cont;}CPaper(const CPaper&
阅读全文
posted @
2012-11-06 10:14
bitbit
阅读(398)
推荐(0) 编辑
设计模式之实现----几种工厂模式
摘要:1.工厂方法模式:/************************************* CPizza.h*************************************/#pragma once#include using namespace std;class CPizza {public:virtual string getDescription() = 0;};class CNYCheesePizza : public CPizza{public:string getDescription(){return string("a new york cheese
阅读全文
posted @
2012-11-06 10:07
bitbit
阅读(963)
推荐(0) 编辑