摘要: 阅读全文
posted @ 2012-09-30 21:25 wx_xfy6369 阅读(98) 评论(0) 推荐(0) 编辑
摘要: 抽象工厂:该模式和工厂方法模式很相似,也是一个抽象基类和若干个具体工厂类,不同的是抽象工厂的工厂基类定义了多个虚工厂方法,每个虚工厂方法负责返回一种产品,多个工厂方法返回多种产品,并且这些产品具有某些联系。抽象工厂就不止生产Nokia手机了,还生产相关的周边产品,首先NokiaFactory基类会定义两个虚方法,一个是CreateNokiaPhone用来生产手机,另一个是CreateNokiaCharger用于生产对应型号的手机充电器(假定不同型号手机使用不同的充电器)。然后派生类N97Factory就要生产两种相关的产品,一个是N97Phone,还有一个是N97Charger,这两个对象是对 阅读全文
posted @ 2012-09-30 21:21 wx_xfy6369 阅读(168) 评论(0) 推荐(0) 编辑
摘要: 简单工厂:严格说并不是一个设计模式。简单工厂没有抽象类,只有一个具体工厂类如MyFactory,然后MyFactory里面有个工厂方法CreateProduct返回一个基类产品,具体返回什么具体实例通过传入参数然后用case判断。用手机生产做个例子:比如Nokia简单工厂就是只有NokiaFactory工厂类,工厂方法就是CreateNokiaPhone,参数是Nokia手机型号,根据不同型号创建不同的Nokia手机(使用case)。很明显的缺点就是Nokia每发明一个新型号的手机都需要修改简单工厂类(增加case判断),违反了封闭修改,开放扩展原则。工厂方法:该模式有一个抽象基类和若干个派生 阅读全文
posted @ 2012-09-30 21:16 wx_xfy6369 阅读(190) 评论(0) 推荐(0) 编辑
摘要: 一.简单工厂模式又称静态工厂方法模式(Static Factory Method)1.静态工厂方法统一管理对象的创建。静态工厂方法通过传入的参数判断决定创建哪一个产品的实例,封装了对象的创建class CNokiaSimpleFactory { public: /* 静态工厂方法 */ static CNokia * CreateNokia(string model); }; CNokia * CNokiaSimpleFactory::CreateNokia(string model) { if (model == "N96") {... 阅读全文
posted @ 2012-09-30 21:05 wx_xfy6369 阅读(193) 评论(0) 推荐(0) 编辑
摘要: 就是说简单工厂模式,并没有解决OCP(开放封闭原则)只是像上面讲的,SimplePizzaFactory可以有很多的客户,这样当这个地方改变那时,我们可以只改变这个类就可以了,、不用像之前那样,在每一个地方都要修改。 阅读全文
posted @ 2012-09-30 20:53 wx_xfy6369 阅读(130) 评论(0) 推荐(0) 编辑