略
初谈设计模式
设计模式是对面向对象的代码设计经验总结,是在编程领域被反复使用、被多人知晓、而且经过分类整理的代码设计方法。设计模式是一种思想,既有既定的结构图和基本程序代码,但也不能照本宣科,需要根据需求尝试着变通以达到编码目的。
单一职责原则
刚开始学习写程序时,总是习惯把很多方法写到一个类中,从而导致了类变得越来越复杂,这种是不可取的,因为当需要修改代码时,翻阅着成千上万行的代码会有一种想死的感觉,这里就需要设计模式的单一职责原则。
单一职责原则的定义是:对于一个类,应该只有一个引起它变化的原因,解释来说就是,例如一个带有缓存功能图片加载类,能引起它变化的原因有两个,一个是当缓存功能需要修改时,二是当图片加载功能需要修改时,这两个原因都需要修改本类,所以本类是不符合单一职责原则的,此时需要把缓存和图片加载功能分开成为两个类来写更好一些。
里氏代换原则
里氏代换原则涉及到类的继承。继承能把父类多元化,产生多种子类,而有都保留了父类的公共特征。
里氏代换原则的定义是:子类型必须能够替换掉它们的父类型。如果一个子类继承自父类,那么这个子类就能以父类的身份出现。例如一个软件实体使用了一个父类,那么就肯定适用于其子类,而且那个软件实体还察觉不出来子类对象与父类对象的区别。
里氏代换的精髓
举个例子:一个老木匠,周围人都知道他,经常去到他家做家具,而这个木匠还有个不为人知的徒弟,不但学会了老木匠的本事,还自己研究了一套装饰家具的技能。老木匠接到任务后如果他不想做,他可以请他的徒弟来做,对于那些请木匠做家具的人来说,他们并不知道是谁做的,代码可以这样实现:
1 | //老木匠类 |
对于客户们:
1 | public static void main(String[] args){ |
总结
满足里氏代换原则后,子类可以代替父类出现,而不影响程序的功能,而且子类可以在父类的基础上添加新功能,但如果子类改写父类太多的代码,那最好断绝父子关系。