设计模式
gerberasn
试着去做让自己真正开心而当前又会逃避的事~
展开
-
设计模式
最近在学习设计模式,目前学了大概10个,学完最深de的体会就是对于其他人写的代码有了新的理解。知道了为什么哪些代码为什么要这么设计编写。个人对于设计模式的理解是,是前人总结的在某些特定场景,提供一种设计方法,更好的让代码具有灵活性和可维护性。设计模式总的来说是一个解耦的过程,降低类之间的耦合度,让代码更加灵活。设计模式的设计原则如下,在百度百科有详细的解释。...原创 2019-03-24 09:51:06 · 127 阅读 · 0 评论 -
设计模式之策略模式
UML图:官方定义: 定义了一组算法(业务规则); 封装了每个算法; 这族的算法可互换代替(interchangeable) 个人理解,对于一个主体对象来说,它有多种动作行为,而这多种动作行为是平行无关联的。根据多种动作行为抽象出一个接口类,让每一种动作行为都按抽象出来的接口进行具体实现。这样的好处就是,可以让主体对象更方便的切换不同的动作行为。举一个列子...原创 2019-03-24 10:25:54 · 130 阅读 · 0 评论 -
设计模式之观察者模式
UML图:摘抄说明:观察者模式(Observer)完美的将观察者和被观察的对象分离开。举个例子,用户界面可以作为一个观察者,业务数据是被观察者,用户界面观察业务数据的变化,发现数据变化后,就显示在界面上。面向对象设计的一个原则是:系统中的每个类将重点放在某一个功能上,而不是其他方面。一个对象只做一件事情,并且将他做好。观察者模式在模块之间划定了清晰的界限,提高了应用程序的可维护性和重用...原创 2019-03-24 10:47:45 · 210 阅读 · 0 评论 -
设计模式之适配器模式
UML图:定义:将一个类的接口转换成客户希望的另外一个接口。Adapter模式使得原本由于接口不兼容而不能一起工作的那些类可以一起工作。适配器的实现有两种方案:类适配(通过继承实现),对象适配(通过获得对象实现)使用场景:当已有的类现在不能完成客户的需求,比如:一个两头充电器,现在需要这个充电器需要增加三头充电功能。要修改是比较简单的,直接在两头充电器类里面增加三头充电的方法...原创 2019-03-24 11:15:19 · 174 阅读 · 0 评论 -
设计模式之组合模式
UML图(GoF《设计模式》):将对象组合成树形结构以表示“部分整体”的层次结构。组合模式使得用户对单个对象和组合对象的使用具有一致性。使用场景:当遇到树形的结构,一般使用组合模式。思想是,将枝干和叶子抽象出一个接口,让枝干和叶子类实现抽象接口,让它们具有一致性。常见的文件夹系统。文件的叶子最底层,文件夹是枝干下面可以有文件和文件夹。将文件和文件夹抽象出一个一致对外的接口。具体代码...原创 2019-03-24 11:29:27 · 309 阅读 · 0 评论 -
设计模式之装饰模式
UML图定义:装饰模式是在不必改变原类文件和使用继承的情况下,动态地扩展一个对象的功能。它是通过创建一个包装对象,也就是装饰来包裹真实的对象。使用场景:当一个对象可以根据选择动态的加上其他功能,动态的意思是可变的和不确定的。比如:购买汽车系统,我们可以给不同的汽车型号加上不同的功能,比如:GPS功能,雷达功能。也可以不加,这个时候哪个型号加跟不加这些功能是动态的,是根据需要来决定的。但...原创 2019-03-24 11:45:58 · 178 阅读 · 0 评论 -
设计模式之命令模式
UML图定义:在软件系统中,“行为请求者”与“行为实现者”通常呈现一种“紧耦合”。但在某些场合,比如要对行为进行“记录、撤销/重做、事务”等处理,这种无法抵御变化的紧耦合是不合适的。在这种情况下,如何将“行为请求者”与“行为实现者”解耦?将一组行为抽象为对象,实现二者之间的松耦合。使用场景:请求者跟执行者有紧密的联系,比如遥控操作电视,遥控是请求者,有开、关、选择频道的请求功能。电视是...原创 2019-03-24 12:13:29 · 176 阅读 · 0 评论 -
设计模式之状态模式
UML图定义:(源于Design Pattern):当一个对象的内在状态改变时允许改变其行为,这个对象看起来像是改变了其类。使用场景:当一个对象改变了状态,会影响这个对象能执行的行为。比如当我们灯控制开关,有两个行为:一个是开的行为,一个是关的行为。当灯是开的状态,只能执行关的行为;当灯是关的状态,只能执行开的行为。这个时候状态是改变了灯这个对象的行为的。具体的代码实现:...原创 2019-03-24 12:26:32 · 279 阅读 · 0 评论