设计模式的解析和实现(C++)之二十一-完结篇
上几个晚上就可以看完的书.这两本的立足点都是以生动的例子结合面向对象的基本原理来讲解模式,我更喜欢前者一些(后者太贵,要不是打5折我才不买呐:)
其次,要多接触项目或者可以找一些好的代码来看看,自己也多写一些代码.基本上,只要是用面向对象的语言开发的项目,里面没有几个模式的运用是不可能的了.因此,要戒除那些一开始接触设计模式就想整明白的幻想,因为要真正的理解需要很多的实践,同样的一时半会理解不了的也不必气馁(GOF的E文版我看了好多遍了:),坚信自己多实践一定可以慢慢的悟道的. 关于设计模式的一个疑问:非面向对象语言中有没有所谓的"设计模式"?设计模式最初的定义是解决一些问题的惯用方法(大意如此),并没有明确的说必须要支持某种特性的语言.我用纯C开发的项目实在是有限,平时也只是自己作一些小东西玩玩,没有做过任何一个上万行的纯C开发的项目,所以一直对这个问题抱有疑问~~anyway,有问题是好事,说明我在思考~~把这个问题放在这里,以后慢慢实践之琢磨之~~ 博君一笑. 关于设计模式,还有一篇有意思的文章--<<追MM与设计模式>>,这篇文章可谓是"寓教于乐"的典范,讲述了23个模式在日常生活中的原型,虽然没有具体讲述如何实现,但是对于理解各个设计模式的运用场合还是很有帮助的.相信对设计模式已经有了一定了解的人看了这篇文章都会会心一笑:),作者和出处已经不详了. 追MM与设计模式 作者:佚名 来自:CSDN 在CSDN看见了这篇文章,作者以轻松的语言比喻了java的32种模式,有很好的启发作用,但可惜没有给出具体的意思,我就在后边加上了:)这些都是最简单的介绍,要学习的话建议你看一下《java与模式》这本书。 创建型模式 1 、FACTORY—追MM少不了请吃饭了,麦当劳的鸡翅和肯德基的鸡翅都是MM爱吃的东西,虽然口味有所不同,但不管你带MM去麦当劳或肯德基,只管向服务员说“来四个鸡翅”就行了。麦当劳和肯德基就是生产鸡翅的Factory 工厂模式:客户类和工厂类分开。消费者任何时候需要某种产品,只需向工厂请求即可。消费者无须修改就可以接纳新产品。缺点是当产品修改时,工厂类也要做相应的修改。如:如何创建及如何向客户端提供。 2 、BUILDER—MM最爱听的就是“我爱你”这句话了,见到不同地方的MM,要能够用她们的方言跟她说这句话哦,我有一个多种语言翻译机,上面每种语言都有一个按键,见到MM我只要按对应的键,它就能够用相应的语言说出“我爱你”这句话了,国外的MM也可以轻松搞掂,这就是我的“我爱你”builder。(这一定比美军在伊拉克用的翻译机好卖) 建造模式:将产品的内部表象和产品的生成过程分割开来,从而使一个建造过程生成具有不同的内部表象的产品对象。建造模式使得产品内部表象可以独立的变化,客户不必知道产品内部组成的细节。建造模式可以强制实行一种分步骤进行的建造过程。 3 、FACTORY METHOD—请MM去麦当劳吃汉堡,不同的MM有不同的口味,要每个都记住是一件烦人的事情,我一般采用Factory Method模式,带着MM到服务员那儿,说“要一个汉堡”,具体要什么样的汉堡呢,让MM直接跟服务员说就行了。 工厂方法模式:核心工厂类不再负责所有产品的创建,而是将具体创建的工作交给子类去做,成为一个抽象工厂角色,仅负责给出具体工厂类必须实现的接口,而不接触哪一个产品类应当被实例化这种细节。 4 、PROTOTYPE—跟MM用QQ聊天,一定要说些深情的话语了,我搜集了好多肉麻的情话,需要时只要copy出来放到QQ里面就行了,这就是我的情话prototype了。(100块钱一份,你要不要) 原始模型模式:通过给出一个原型对象来指明所要创建的对象的类型,然后用复制这个原型对象的 |
凌众科技专业提供服务器租用、服务器托管、企业邮局、虚拟主机等服务,公司网站:http://www.lingzhong.cn 为了给广大客户了解更多的技术信息,本技术文章收集来源于网络,凌众科技尊重文章作者的版权,如果有涉及你的版权有必要删除你的文章,请和我们联系。以上信息与文章正文是不可分割的一部分,如果您要转载本文章,请保留以上信息,谢谢! |