设计模式学习的建议-GOF给我们的建议:
1 针对接口编程
2 优先使用组合,而不是继承(Favor Composition Over Inheritance)
3 找到封装变化点
设计模式的原则
1-开闭原则
1.1定义:一个软件实体如类、模块和函数应该对扩展开放,对修改关闭
1.2问题由来:
在软件的生命周期内,因为变化、升级和维护等原因需要对软件原有代码进行修改时,可能会给旧代码中引入错误,也可能会使我们不得不对整个功能进行重构,并且需要原有代码经过重新测试
1.3解决方案:
当软件需要变化时,尽量通过扩展软件实体的行为来实现变化,而不是通过修改已有的代码来实现变化。
2-依赖倒置原则
2.1定义:
高层模块不应该依赖低层模块,二者都应该依赖其抽象;抽象不应该依赖细节;细节应该依赖抽象
2.2问题由来:
2.3解决方案
3-里氏替换原则
里氏替换原则通俗的来讲就是:子类可以扩展父类的功能,但不能改变父类原有的
功能。它包含以下 2 层含义:
1)子类中可以增加自己特有的方法。
2)子类可以实现父类的抽象方法,但不能覆盖父类的非抽象方法。