
设计模式
zhang_int_int
这个作者很懒,什么都没留下…
展开
-
13.桥接模式
1.说明 请参见第一章节 2.桥接模式说明 桥接模式:将抽象部分与它的实现部分分离,使他们都可以独立的变化 使用范围:在多个系类族中,每个族都在互相变化,一个族的变化,会影响到其它族的变化。那么这时候可以使用桥接模式,来实现 抽象与实现的分离:并不是说抽象类与其派生类分离,实现指的是抽象类和它的派生类用来实现自己的对象关于对象继承:继承在编译阶段就定义好了,所以无法在运行时改变从父类继承的原创 2015-06-19 09:33:23 · 453 阅读 · 0 评论 -
9.观察者模式
1.说明 请参阅该系列第一篇文章。 2.观察者模式说明 观察者模式:定义了一种一对多的关系,让多个观察者对象监听某一主题对象,这个主体对象发生改变时,会通知观察者对象,使他能够自动更新自己 特点:将一个系统分割成一系列相互协作的类是一个很不好的副作用,那就是需要维护相关对象的一致性,我们不希望为了维护类的一致性而使类紧密耦合,这样会给维护,扩展,重用带来很多不便。 使用场景:当一个对象的改原创 2015-06-11 17:19:52 · 403 阅读 · 0 评论 -
8.建造者模式
1.说明 请参阅本系列第一章节 2.建造者模式说明 构造者模式:将一个复杂的构建与它的表示分离,使得同样的构建过程,可以创建不同的表示。即生成具有不同内部表象的产品对象。在使用的时候,用户只需要知道构建的对象就行了,而不需要知道构建的细节。客户端通过调用指挥者的接口,来控制构建过程,使得能够隔离用户的构建过程 注意事项:指挥者的构建过程必须足够普遍,以此来构建不同的具体的对象。如果这些构建的原创 2015-06-10 21:34:20 · 427 阅读 · 0 评论 -
7.模板方法
1.说明 请参阅第一章。 2.模板方法模式说明 模板方法模式:定义了一个操作算法的骨架,而将这些算法的实现延迟到子类,使得可以不改变一个算法的结构,而可以重定义某些特定的实现步骤。 继承的意义:在多个子类的重复都应该提炼到父类中去。 模板方法使用范围:当要完成某一细节层次一致的一个过程或一系列步骤时,但其个别步骤在更详细的层次上有不同的实现时,我们通常采用模板方法来处理。 优点:模板方法原创 2015-06-08 20:56:26 · 454 阅读 · 0 评论 -
6.原型模式
1.说明 请参阅本文第一章 2.原型模式说明 原型模式:用原型实例指定创建对象的种类,并通过拷贝这些原型创建新的对象 通俗说话:创建一个和原来一模一样的对象,减少代码中使用动态来new的方式,并且不用知道任何的创建细节 3.UML 4.代码 //个人信息类,通过不同的数据类型来测试原型模式中的复制状况 //当原型中的为指针类型时,为浅复制,其余均为深复制,且会调用复制构造函数 //原创 2015-06-07 22:46:00 · 440 阅读 · 0 评论 -
5.代理模式
1.说明 请参阅第一篇文章 2.代理模式简介 代理模式:为其它对象提供一种代理,以控制对这个对象的访问。 代理者和被申请代理的对象二者应该有相同的接口,或者是申请代理者的接口是代理者接口的子集,因为可以代理多个对象。 代理的模式有: 远程代理:为一个对象在不同的地址空间提供局部代表。这样可以隐藏一个对象存在于不同地址空间的事实。 虚拟代理:根据需要创建开销很大的对象,通原创 2015-06-06 21:36:44 · 349 阅读 · 0 评论 -
1.简单工厂模式
1.说明 设计模式笔记开篇,在该系列笔记中,多参考和归纳与《大话设计模式》和《设计模式可复用面向对象软件的基础》,如果有侵权的嫌疑请以邮件通知我(zhang_int@sina.cn)以便及时撤下该系列文章。 该系列文章将遵循以下风格,模式说明,应用举例(选择),代码UML图,代码。文中代码在linux g++方式均编译通过并可执行。如有读者未执行通过,请在评论区留言,以便及时修原创 2015-06-01 23:29:40 · 441 阅读 · 0 评论 -
4.策略模式
1.说明 请参见该系列文章第一章 2.策略模式说明 本质:根据client的需求,调用不同的算法实现,算法经常变更的场所。 通俗:客户为满足不同的场景,预定义了不同的算法,在不同的环境下进行算法切换。达到相同的目的 注意点:由于定义了不同的算法,所以client在使用的时候,会进行判断的方式进行初始化,那么在这个地方其实是可以增添简单工厂模式,将判断的逻辑疲敝起来,client只需要传入条原创 2015-06-05 15:46:54 · 444 阅读 · 0 评论 -
0.设计模式思想
1.说明 该篇不涉及具体的设计模式,而是对相关编程思想的总结,而具体的设计模式也是在该思想下的具体补充和实现。所以设计思想可以说是设计模式的灵魂。 而在开发的过程中,因为业务逻辑等不同,可能会和相关思想冲突,所以要做到尽量满足,而不是刻板遵守。2.单一职责模式 就一个类而言,应该仅有一个引起它变化的原因 如果一个类职责过多,就等于把这些职责耦合在一起,一个职责的变化,可能会削原创 2015-06-26 13:44:07 · 624 阅读 · 0 评论 -
16.中介者模式
1.说明 请参见第一章节 2.中介者模式简介 中介者模式:用一个中介对象来封装一系列的对象交互,中介者使各个对象不需要显示地互相引用,从而使其耦合松散,而且可以独立地改变它们之间的交互。 注意:很容易在系统中应用,也很容易误用。当系统出现了“多对多”交互复杂的对象群时,不要急于使用中介这模式,而要反思这个模式是否合理。 中介这模式优缺点:mediator的出现减少了各个对象的耦合,使得可以原创 2015-06-25 13:55:47 · 344 阅读 · 0 评论 -
15.职责链模式
1.说明 请参见第一章节 2.职责链模式说明 职责链模式:是多个对象都有机会处理请求,避免请求发送者和接受者之间的耦合。将这个对象形成一条链,并沿着这条链传递请求,直到一个对象处理他为。就终止上传请求的客户端并不知道这当中的哪一个对象最终处理这个请求,这样系统的更改可以在不影响客户端的情况下动态地重新组织和分配责任。 好处和缺点:接受者和发送者都没有对方的明确信息,且链中的对象不知道链的结构原创 2015-06-24 16:21:19 · 436 阅读 · 0 评论 -
3.抽象工厂模式
1.说明 请参阅第一篇文章 2.抽象工厂模式说明 抽象工厂模式:提供了一个创建一系列相关或相互依赖的对象的接口,而无需指定他们具体的类。 通俗:为创建不同的产品,或相同产品的不同型号,使用了不同的具体工厂来生产。 例如:富士康代工的有苹果的MAC,有IPhone,而华为代工魅族,nexus等。每个工厂可以有不同的产品,而这些产品可以进行可以进行抽象,工厂也可以进行抽象,所以就叫抽象工厂模式原创 2015-06-03 21:12:22 · 371 阅读 · 0 评论 -
2.工厂方法模式
1.说明 请参见《简单工厂模式》,此处略。 2.工厂方法模式说明 工厂方法模式:定义了一个用于创建对象的接口,让子类决定实例化哪一个类,使得类的实例化延迟到其子类。 3.与简单工厂模式比较 1.简单工厂模式可以根据传入条件生成多个产品,而工厂方法模式每个工厂只生产一个产品,所以需要多个工厂。 2.简单工厂是根据条件来判断并生成产品,而工厂方法模式是直接初始原创 2015-06-02 20:54:38 · 384 阅读 · 0 评论 -
14.命令模式
1.说明 请参见第一章节 2.命令模式说明 命令模式:将一个个请求封装成一个对象,从而使你可用不同的请求对客户进行参数化,对请求排队或记录请求日志,以及支持可撤销操作。 甚至可以将实现者进行分离,来实现业务分离,松耦合 优点: 1.能比较容易地设计一个命令队列。 2.在需要的的情况下,可以比较容易地将命令记录日志。 3.允许接受请求的一方决定是否要否决请求。原创 2015-06-21 23:41:12 · 399 阅读 · 0 评论 -
12.组合模式
1.说明 请参见本文第一章 2.组合模式说明 组合模式:将对象组合成树形接口以表示‘部分-整体’的层次结构。组合模式使得用户对单个对象和组合对象具有一致性。 为了保持整体和局部的一致性,整体和局部具有相同的接口,从而避免判断该节点是整体还是局部。接口可以实现为空。 使用范围:在需求中体现部分与整体的层次的接口时,以及你希望用户忽略组合对象与单个对象的不同,同一地使用组合接口中的所有对象时,原创 2015-06-18 20:22:53 · 344 阅读 · 0 评论 -
11.备忘录模式
1.说明 请参阅第一篇文章 2.备忘录简介 备忘录:在不破坏封装的前提下,捕获一个对象的内部状态,并在该对象之外保存这个状态,这样以后可以将该对象回复到保存时刻的状态 适用范围:适用于功能复杂,需要维护和记录属性的历史数据,需要保存的属性只是众多属性中的一小部分。使用备忘录模式可以将复杂的内部对象信息构建屏蔽起来 缺点:如果数据较多,消耗的内存资源相对也会比较多。原创 2015-06-18 14:18:41 · 393 阅读 · 0 评论 -
10.适配器模式
1.说明 请参见本文第一章 2.适配器模式说明 适配器模式:将一个类的接口转换成客户希望的另外一个接口。Adapter模式使得原本由于接口不兼容而不能一起工作的那些类可以一起工作。 通俗:需要的东西就在面前,但却不能使用,而短时间又无法改造它,于是就采用适配器来适配它。 系统的数据和行为正确,但接口不符时,我们应该考虑用适配器,目的是使控制范围之外的一个原有对象与某个接口匹配。适配器模式主原创 2015-06-15 14:54:38 · 441 阅读 · 0 评论