首页 > 代码库 > 设计模式总结(一)

设计模式总结(一)

学习了一段时间的设计模式,对其中的模式有一些自己的理解,根据每个模式的结构图做一些总结,以作为反思吧。

一、简单工厂模式


模式解析:简单工厂模式中运算类是一个抽象类,加、减、乘、除为四个具体的运算类,它们继承了抽象了的属性和方法。简单工厂类依赖于运算类,只要输入运算符号,工厂就实例化出合适的对象,通过多态,返回父类的方式实现计算器的结果。

思想概况:代码规范,谨记面向对象三大原则:可维护、可修改、可扩展。通过封装、继承、多态把程序的耦合度降低,实现高内聚,低耦合。编程是一门技术,更是一门艺术。

二、策略模式


模式解析:策略模式中CashSuper是一个抽象类,正常收费CashNormal,打折收费CashRebate和返利收费CashReturn是它的三个具体策略。CashContextCashSuper是聚合关系,其中CashContext通过构造方法传入具体收费策略,并返回相应的收费结果,并声明一个CashSuper对象。

思想概况:用最低的成本获得最大的收益。策略模式定义了一系列的可重用的算法。继承有助于析出这些算法的公共功能。尽可能的去减少类与类之间的耦合。

三、单一职责原则

一个类,仅有一个使它变化的原因。

如果你能想到多余一个的动机去改变一个类,那么这个类就具有多于一个的职责,应该考虑类的职责分离。

四、开放——封闭原则

软件实体应该可以扩展,但是不可修改。

设计时猜测出最有可能发生变化的种类,然后构造抽象来隔离那些变化。

面对需求,对程序的改动通过增加新代码进行,而不是更改现有的代码。

五、依赖倒转原则

高层模块不应该依赖底层模块,两个都依赖抽象。

抽象不应该依赖细节,细节依赖抽象。

里氏代换原则:子类型必须能够替换掉其父类型。

所有的依赖关系都终止于抽象类或者接口。

六、装饰模式

模式解析:具体装饰品继承装饰这个类,装饰实现被装饰者的接口类,也就是说他们之间的联系都不是通过具体实例相联系的,而是通过类联系然后表现在每一个具体的对象中。如果有一个具体被装饰者就无需用被装饰者接口了,装饰和被装饰者可以直接相关联,其实就是我们书中“小菜扮靓第三版的结构图”。

思想概况:装饰模式是为已有功能动态地添加更多功能的一种方式。

有效的把类的核心职责和装饰功能区分开,去除相关类中重复的装饰逻辑。

后续还会有一些总结,敬请期待。。。。。

 

 

设计模式总结(一)