设计模式开篇之设计原则
设计模式是什么?
设计模式可以这样说:是开发者的先驱者在无数的开发实践血泪教训中总结出来的一套用于解决特定场景问题的最佳解决方案。
设计模式所要达到的目的是什么?
这其实就是我们开发者编写代码所要追求的
1.代码复用性(相同功能的代码只用编写一遍,不用重复编写)
2.可读性(编写的代码便于开发人员理解,遵循统一规范)
3.可扩展性(当需要增加新的功能很容易扩展,或者说扩展成本很低)
4.可靠性(当增加或改动部分代码不会影响其他业务,不至于牵一发而动全身)
5.低耦合,高内聚
设计模式的原则是什么,有哪些?
设计模式一共有七大基本设计原则,而我们想要编写出优秀的代码,就要去理解并加以运用这些设计原则:
一 UML类图关系 耦合性由强到弱依次为
泛化=实现>组合>聚合>关联>依赖
二 依赖传递的三种方式
1 接口类型引用 2 构造器传递 3 set方法传递
一.开闭原则:
编程中最核心最基本的原则,指类或者模块或者软件应该对扩展开放,对修改关闭,抽象搭建框架,实现扩展细节,当软件功能发生变化,用扩展方式应对变化,而不是修改原有代码逻辑去应对变化。
二、单一职能原则:
就是一个类或者一个方法只具有一项职能,不应具有多项职能。
如果具有多项职能会导致要修改起来或者变化起来的成本非常高,非常麻烦。
三、里式替换原则:
是面向对象编程中对继承的一种规范和要求。就是子类不要去重写父类已经实现
的方法。极端例子:如果子类全部重写了父类的方法,那么子类继承父类这个操作
就毫无意义。
四、依赖倒置原则:
就是高层模块不应该依赖于低层模块,二者都应该依赖其抽象。
其核心就是面向接口编程。
五、接口隔离原则:
就是一个类对另一个类的依赖应建立在最小接口上。
通俗来讲就是一个客户端类使用到的一个接口引用的对象,应该使用到其接口的所有方法,
如果没有完全使用到,那么就是这个接口不是最小接口,这样的情况就没有遵守接口隔离原则
六、合成复用原则:
就是说尽量使用聚合的方式而不要使用继承的方式达到复用原有代码目的。
七、迪米特法则:
也叫最少知道原则,就是说一个类对自己依赖的类知道得越少越好,就是说对于依赖的类而言,
类不管多么复杂也尽量将逻辑封装在其内部,对外只提供public的方法,但是不能对外直接提供
访问属性的权限。通俗来说就是只使用直接联系的类,不要使用出现没有直接联系的陌生的类,
直接联系的类包括:是类的成员变量、是类中方法的返回值、是类中方法的参数
最直接的说法就是不要让一个既不是成员变量类型也不是类中方法的返回值类型还不是类中方法
的参数类型的类去成为在局部变量的类型。
设计模式的划分有哪些?
设计模式根据关注的点不同划分为以下三大类,
由对象的创建过程的合理性思考而产生的类型,称为创建型设计模式
从方法的角度思考如何让方法显得更合理而产生的类型,称为行为型设计模式
从类与类之间结构的角度去降低耦合度而产生的类型,称为结构型设计模式