设计模式
文章平均质量分 61
china1000
要做一个有信仰的人。
要做一个品行端正的人。
我爱计算机,我爱程序。
Judge one by his character,what he treats others and what he believes but not by who he is or what his condition is.
github: https://github.com/china1000
展开
-
设计模式(总结)
设计模式总览转载 2022-09-05 01:11:04 · 103 阅读 · 0 评论 -
建造者模式
又是一个周三,快要下班了,老大突然拉住我,喜滋滋地告诉我:“牛叉公司很满意我们做的模型,又签订了一个合同,把奔驰、宝马的车辆模型都交给我们公司制作了,不过这次又额外增加了一个新需求:汽车的启动、停止、喇叭声音、引擎声音都由客户自己控制,他想什么顺序就什么顺序,这个没问题吧?” 看着老大殷切的目光,我还能说啥?非常肯定地点头,“没问题!”,加班加点做呗,“再苦再累就当自己二百五!再转载 2012-06-13 17:15:02 · 1136 阅读 · 0 评论 -
原型模式
原型模式: 首先普及浅复制与深复制的定义。⑴浅复制(浅克隆)被复制对象的所有变量都含有与原来的对象相同的值,而所有的对其他对象的引用仍然指向原来的对象。换言之,浅复制仅仅复制所考虑的对象,而不复制它所引用的对象。 ⑵深复制(深克隆)被复制对象的所有变量都含有与原来的对象相同的值,除去那些引用其他对象的变量。那些引用其他对象的变量将指向被复制过的新对象,而不再是原有的那转载 2012-06-11 17:18:57 · 480 阅读 · 0 评论 -
设计模式完整备忘录
最近正在学习设计模式,看到这个人总结的很好,就顺手转过来了。比我总记得清晰。简明。 小言:这不是设计模式讲解型博文,以下将设计模式的概述、类图,代码示例,总结分每篇博文单独展示,现将其归类,便于以后翻阅,设计模式也不是一两个月学完了就能完全领悟,它只告诉我们几个解决问题的思路和方法,将具体问题抽象为模型的思想,武功也是,套路需要学,但是基本功(如马步、力量,毅力,抗打击能力)绝对不可或缺,转载 2012-06-11 09:34:50 · 520 阅读 · 0 评论 -
备忘录模式
对象状态的回溯 对象状态的变化无端,如何回溯/恢复对象在某个点的状态 如果我们想恢复对象的状态,那么我们可能首先想到的是把对象保存下来,但是这样会破坏对象的封装性。因为对象有状态有操作,如果我们为了保存对象而留着原来的对象,做一个深拷贝,那么其他对象也能通过这个对象的接口访问这个对象状态,这并不是我们所希望的。而我们需要它的职责只是保存和恢复对象状态,而不应在上面支持对对象状态访问转载 2012-06-11 13:39:30 · 487 阅读 · 0 评论 -
迭代器模式
迭代器模式:提供一种方法顺序访问一个聚合对象中各个元素,而又不暴露该对象的内部表示. 1.当你需要访问一个聚集对象,而且不管这些对象是什么都需要遍历时,就应该考虑用迭代器模式。 2.当需要对聚集对象有多种遍历方式时,可以考虑用迭代器模式。 3.迭代器模式在访问数组,集合,列表等数据时,尤其是数据库数据操作时,是非常普遍的应用, 所以各种高级语言 都对它进行了封装,反而给人转载 2012-06-08 17:30:18 · 766 阅读 · 0 评论 -
中介者模式
中介者模式(Mediator):用一个中介对象来封装一系列的对象交互。中介者使各对象不需要显式地相互引用,从而使其耦合松散,而且可以独立地改变它们之间的交互。 通用类图: 举例:在一个公司里面,有很多部门、员工(我们统称他们互相为Colleague“同事”),为了完成一定的任务,“同事”之间肯定有许多需要互相配合、交流的过程。如果由各个“同事”频繁地到处去与自己有关转载 2012-06-08 16:40:09 · 475 阅读 · 0 评论 -
组合模式
一、组合模式简介(Brief Introduction)组合模式,将对象组合成树形结构以表示“部分-整体”的层次结构,组合模式使得用户对单个对象和组合对象的使用具有一致性。 二、解决的问题(What To Solve)解决整合与部分可以被一致对待问题。三、组合模式分析(Analysis)1、组合模式结构Component类:组合中的对象声明接口,在适当情况下,实现所转载 2012-06-08 15:01:12 · 425 阅读 · 0 评论 -
责任链模式
在责任链模式里,很多对象由每一个对象对其下家的引用而连接起来形成一条链,请求在这个链上传递,直到链上的某一个对象决定处理此请求,发出这个请求的客户端并不知道链上的哪一个对象最终处理这个请求,这使得系统可以在不影响客户端的情况下动态地重新组织链和分配责任。 责任链模式就是这种“推卸”责任的模式,你的问题在我这里能解决我就解决,不行就把你推给另一个对象。至于到底谁解决了这个问题了呢?我管呢!转载 2012-06-08 16:51:44 · 404 阅读 · 0 评论 -
代理模式
1. 代理模式 代理模式的作用是:为其他对象提供一种代理以控制对这个对象的访问。在某些情况下,一个客户不想或者不能直接引用另一个对象,而代理对象可以在客户端和目标对象之间起到中介的作用。代理模式一般涉及到三个角色: 抽象角色:声明真实对象和代理对象的共同接口; 代理角色:代理对象角色内部含有对真实对象的引用,从而可以操作真实对象,同时代理对象提供与真实对象相同的接口以便在任何时转载 2012-06-08 15:45:38 · 333 阅读 · 0 评论 -
面向对象设计原则--面试遭遇
转载的设计模式不错的几本书《Head first 设计模式》,《java与模式》,《重构与模式》,《设计模式解析(第二版)》,《敏捷软件开发:原则、模式与实践》当然还有经典的GOF的著作《设计模式可复用面向对象软件的基础》 一、单一职责原则(SRP) 就一个类而言,应该仅有一个引起它变化的原因。软件设计真正要做的许多内容,就是发现职责并把那些职责相互分离。测试驱转载 2012-06-08 10:13:02 · 673 阅读 · 0 评论 -
观察者模式(Observer Pattern) .NET设计模式
概述 在软件构建过程中,我们需要为某些对象建立一种“通知依赖关系” ——一个对象(目标对象)的状态发生改变,所有的依赖对象(观察者对象)都将得到通知。如果这样的依赖关系过于紧密,将使软件不能很好地抵御变化。使用面向对象技术,可以将这种依赖关系弱化,并形成一种稳定的依赖关系。从而实现软件体系结构的松耦合。 意图 定义对象间的一种一对多的依赖关系,当一个对象的状态发生改变时, 所有依转载 2012-06-08 13:46:59 · 559 阅读 · 0 评论 -
装饰者模式
装饰者模式 Decorator模式(别名Wrapper):动态将职责附加到对象上,若要扩展功能,装饰者提供了比继承更具弹性的代替方案。 意图: 动态地给一个对象添加一些额外的职责。就增加功能来说,Decorator模式相比生成子类更为灵活。 设计原则: 1. 多用组合,少用继承。 利用继承设计子类的行为,是在编译时静态决定的,而且所有的子类都会继承到相同的行转载 2012-06-08 11:14:46 · 465 阅读 · 0 评论 -
设计模式-----桥接模式(Bridge Pattern)
学习设计模式也有一段时间了,今天就把我整理的一篇课程和大家分享,有不妥之处欢迎指出. 生活中的一个例子: 就拿汽车在路上行驶的来说。即有小汽车又有公共汽车,它们都不但能在市区中的公路上行驶,也能在高速公路上行驶。这你会发现,对于交通工具(汽车)有不同的类型,然而它们所行驶的环境(路)也在变化,在软件系统中就要适应两个方面的变化?怎样实现才能应对这种变化呢?概述:在软件系统中,转载 2012-06-08 10:36:51 · 409 阅读 · 0 评论