最近为了找工作看了下面向对象的相关内容,其中比较重要的一点就是设计模式。随着看书的过程就有了记录的冲动。
设计模式从毕业到现在也陆陆续续的看过很多次了。但是直到最近才觉得能够理解这些模式,而不是之前的靠单纯记忆和模仿。大概是这些年的实践和遇到的问题,让我能够有能力去理解前辈们的心血了吧。
这个系列主要用Python实现经典的23中设计模式,参考的书籍是一本计算机专业的课本《Java设计模式》。我确实是通过这本书才理解设计模式的,并且使用Python再次实现里面的设计模式,刚好可以提炼设计模式的精髓,而抛弃具体实现语言的限制。
以上就是这个系列的背景。下面开始说说设计模式的基础也是重点-----面向对象编程的原则。
设计模式是从面向对象编程过程中重复出现的问题以及其解决方案中总结出来的,并且经过了实践的验证。设计模式的目的就是为了在特定问题和场景下尽量贯彻面向对象编程的原则。
关于面向对象,总结起来就是三大特性六个原则:
三大特性:封装,继承,多态。
我个人对于三个特性的理解:封装,将数据与方法绑定到一起,并且实现了数据的隐藏和权限的控制。继承,主要是方便了程序功能的扩展和修改的方便。多态,则让程序在统一的接口下可以有自己的行为特征。
六大原则:
1.开闭原则:对扩展开放,对修改关闭
2.单一职责原则:类的功能应该单一
3.里氏替换原则:子类能够代替父类出现在任何地方
4.依赖倒转原则:实现依赖接口,而不是接口依赖实现
5.接口分离原则:不同功能使用不同的接口,而不是使用一个接口实现多个功能
6.最小依赖原则:一个类对其他类尽量少了解
关于这些的具体描述随便百度下就有了,不赘述了。
这里说的是另外一种说法,原则只有4个:
面向抽象原则:当设计一个类时,不让该类面向具体的类,而是面向抽象类或者接口,即所设计的类中的重要数据是抽象类或接口声明的变量,而不是具体类声明的变量。
开-闭原则:设计对扩展开放,对修改关闭。
多用组合少用继承原则:继承是强耦合关系,而组合是低耦合
高内聚-低耦合原则:类中的方法是一组相关的行为就是高内聚的。类中尽量少含有其它类的实例引用。
这四个原则更贴近实现一些。
总述就是这些了,开始具体的设计模式。