在写第一行代码之前
该如何写下自己的第一行代码,之前就在网上看到一篇被转载多次以至于都不知道原著是谁的BLOG。我觉得他写的很好。看完后自己总结下:
我们为什么学习设计模式,因为这些模板是遵循了了OO的6个设计原则,并且在实际项目经过了检验。可以拿来套在其他OO的程序上。所以在学习设计模式之前要追溯到OO的6个设计原则:
设计原则:
- 原则1:单一职责
- 原则2:里氏替换原则(子类扩展但不改变父类功能)
- 原则3:依赖倒置原则
- 原则4:接口隔离原则
- 原则5:迪米特法则(最少知道原则)
- 原则6:开闭原则
简介:
1.类的单一原则:
为什么我们总是在写代码的时候不经意间会违背他?我认为是初期设计类的时候考虑不充分造成的。一个类里实现了多个功能不一定是坏事,在简单逻辑中反而会提高效率。不过一旦需求变更,很容易出隐患。(PS:这里的隐患,原作者用一段演示代码展示的很好)
遵循类的单一原则,最大的好处我认为就是可以最大限度的适应新需求,对新需求的兼容性好,不容易出问题。
2.里氏替换原则:
这条原则我在写代码时没有领悟到。简短的说就是:
子类可以扩展父类的功能,但不能改变父类原有的功能(这里的“改变父类原有的功能”意思是子类中重写了父类的非抽象的方法)
至于为什么子类要避免改变父类的功能,尽量拓展子类自己的功能,原作者的实例代码并不是太让我信服,只是指出这样做可以避免代码出问题。
3.依赖倒置原则
一句话概括就是让你面向接口编程。
面向接口编程对应的则是面向实现编程。原作者的实例代码很好的展示了面向接口的优点:面向接口编程可以降低类之间的耦合性,在多人并行开发中可以互不干扰,合作利器。
在实际开发时,底层的模块一定要有抽象类或接口
4.接口隔离原则
在遵循依赖倒置原则时,我们会大量使用接口,而接口隔离原则则是对接口使用的规范。简单的说就是在设计接口时如果接口内方法太多,且依赖他的类有很多,那么就会出现有些类不需要实现接口里所有的方法的现象。所以要适当拆分臃肿的接口。在程序设计中,依赖几个专用的接口要比依赖一个综合的接口要更加稳定灵活。
5.迪米特法则
类和类之间耦合越大时,一个类改变,依赖他的类会受到巨大影响,也要改变。对于被依赖的类来说,无论逻辑多么复杂,都尽量地的将逻辑封装在类的内部,对外除了提供的public方法,不对外泄漏任何信息。
6.开闭原则
一个软件实体如类、模块和函数应该对扩展开放,对修改关闭。只要我们对前面5项原则遵守的好了,设计出的软件自然是符合开闭原则。