设计模式概述 设计模式(英文全称为Design pattern)是一套被反复使用、多数人知晓的、经过分类编目的、代码设计经验的总结。之所以提倡设计模式,根本原因在于根本原因是为了代码复用,增加可维护性。前面设计模式六大原则中也简单了解了设计模式需要遵循以下原则: 单一职责原则; 里氏替换原则; 依赖...
分类:
其他好文 时间:
2014-08-07 03:04:18
阅读次数:
203
定义: 软件中的对象(类,模块,函数等等)应该对于扩展是开放的,但是对于修改是封闭的。个人理解: 开闭原则通俗的来说就是软件系统中包含的各种组件,例如模块(Modules)、类(Classes)以及功能(Functions)等等,应该在不修改现有代码的基础上,引入新功能。开闭原则中“开”,是指对于组...
分类:
其他好文 时间:
2014-07-27 21:34:35
阅读次数:
211
单一职责原则(Single?Responsibility?Principle) 定义:不要存在多于一个导致类变更的原因。通俗的说,即一个类只负责一项职责。 问题由来:类T负责两个不同的职责:职责P1,职责P2。当由于职责P1需求发生改变...
分类:
其他好文 时间:
2014-07-27 12:14:46
阅读次数:
304
定义: 一个对象应该对其它的对象保持最少的了解。迪米特法则又称为最少知识法则,英文全称为Least Knowledge Principle ,简称为LKP。 个人理解: 迪米特法则主要目的是类间解耦,弱耦合。只有类弱耦合了后,类的复用性才会提高。 问题由来: 类之间的关系越密切,类之间的耦合程度越高...
分类:
其他好文 时间:
2014-07-27 11:04:12
阅读次数:
222
定义: 高层次的模块不应该依赖于低层次的模块,两者都应该依赖于抽象接口;抽象接口不应该依赖于具体实现。而具体实现则应该依赖于抽象接口。依赖倒置原则英文全称为Dependence Inversion Principle,简称为DIP。问题由来: 类A直接依赖类B,假如要将类A改为依赖类C,则必须通过修...
分类:
其他好文 时间:
2014-07-25 19:10:52
阅读次数:
302
定义:客户端不应该依赖它不需要的接口;类之间的依赖关系应建立在最小的接口之上。接口隔离原则英文全称为Interface Segregation Principle ,简称为ISP。个人理解:通俗的来说,接口不能臃肿庞大,而使根据具体需要尽量的细化。接口中的方法也要尽可能的少。接口是设计对外的一种契约...
分类:
其他好文 时间:
2014-07-25 19:06:02
阅读次数:
382
定义:程序中的对象应该是可以在不改变程序正确性的前提下被它的子类所替换,也就是说所有引用基类的地方必须能透明地使用其子类的对象。通俗的来说,子类可以扩展父类的功能,但不能改变父类原有的功能。由来:第一次看见这个里氏替换原则的名字会觉着很奇特,根据以往的经验这一看就是外国友人首先提出的概念,然后便以她...
分类:
其他好文 时间:
2014-07-24 11:26:42
阅读次数:
489
定义: 一个类,只有一个引起它变化的原因。通俗的来说就是一个类只负责一项职责。问题由来: 类T负责两个不同的职责:职责P1,职责P2。当由于职责P1需求发生改变而需要修改类T时,有可能会导致原本运行正常的职责P2功能发生故障。解决方案: 遵循单一职责原则,设计两个类T1和T2,T1负责完成职责...
分类:
其他好文 时间:
2014-07-23 15:45:09
阅读次数:
205
简单工程模式:对具有相同功能的类进行抽象得到父类,这些类继承它成为子类。为了对这些功能进行选择,建立一个工厂类进行判断,其中运用一个Switch语句。
优点:结构简单、操作单一。
缺点:需要事先考虑周到,操作时需准确。由下的“功能扩展”中可知,易违背设计模式六大原则中的“开放-封闭原则”。
功能扩展:若增添功能方法,则需另添加一个类,在运算类中添加的相应的方法,再修改客户端中的Switch语句中的case项。
工厂方法模式(Factory Method):先建立一个...
分类:
其他好文 时间:
2014-07-08 14:34:46
阅读次数:
211
单一职责原则(SingleResponsibilityPrinciple)定义:不要存在多于一个导致类变更的原因。通俗的说,即一个类只负责一项职责。问题由来:类T负责两个不同的职责:职责P1,职责P2。当由于职责P1需求发生改变而需要修改类T时,有可能会导致原本运行正常的职责P2功能发生故障。解决方...
分类:
其他好文 时间:
2014-07-06 19:31:49
阅读次数:
275