标签:设计模式
学习了一段时间的设计模式,对其中的模式有一些自己的理解,根据每个模式的结构图做一些总结,以作为反思吧。
一、简单工厂模式
模式解析:简单工厂模式中运算类是一个抽象类,加、减、乘、除为四个具体的运算类,它们继承了抽象了的属性和方法。简单工厂类依赖于运算类,只要输入运算符号,工厂就实例化出合适的对象,通过多态,返回父类的方式实现计算器的结果。
思想概况:代码规范,谨记面向对象三大原则:可维护、可修改、可扩展。通过封装、继承、多态把程序的耦合度降低,实现高内聚,低耦合。编程是一门技术,更是一门艺术。
二、策略模式
模式解析:策略模式中CashSuper是一个抽象类,正常收费CashNormal,打折收费CashRebate和返利收费CashReturn是它的三个具体策略。CashContext和CashSuper是聚合关系,其中CashContext通过构造方法传入具体收费策略,并返回相应的收费结果,并声明一个CashSuper对象。
思想概况:用最低的成本获得最大的收益。策略模式定义了一系列的可重用的算法。继承有助于析出这些算法的公共功能。尽可能的去减少类与类之间的耦合。
三、单一职责原则
一个类,仅有一个使它变化的原因。
如果你能想到多余一个的动机去改变一个类,那么这个类就具有多于一个的职责,应该考虑类的职责分离。
四、开放——封闭原则
软件实体应该可以扩展,但是不可修改。
设计时猜测出最有可能发生变化的种类,然后构造抽象来隔离那些变化。
面对需求,对程序的改动通过增加新代码进行,而不是更改现有的代码。
五、依赖倒转原则
高层模块不应该依赖底层模块,两个都依赖抽象。
抽象不应该依赖细节,细节依赖抽象。
里氏代换原则:子类型必须能够替换掉其父类型。
所有的依赖关系都终止于抽象类或者接口。
六、装饰模式
模式解析:具体装饰品继承装饰这个类,装饰实现被装饰者的接口类,也就是说他们之间的联系都不是通过具体实例相联系的,而是通过类联系然后表现在每一个具体的对象中。如果有一个具体被装饰者就无需用被装饰者接口了,装饰和被装饰者可以直接相关联,其实就是我们书中“小菜扮靓第三版的结构图”。
思想概况:装饰模式是为已有功能动态地添加更多功能的一种方式。
有效的把类的核心职责和装饰功能区分开,去除相关类中重复的装饰逻辑。
后续还会有一些总结,敬请期待。。。。。
标签:设计模式
原文地址:http://blog.csdn.net/xfz0330/article/details/41419077