设计模式-设计原则
一、依赖倒置原则
依赖于抽象类,依赖于接口,而非依赖于具体类的实现,这样方便子类的切换
Mytest mytest=new Mytest(); //依赖于具体类,硬编码
ITest mytest=new Mytest(); //依赖于接口
二、单一职责
在类中只做一件事,不会做其他不相关的事,或者跨界的事。
三、开闭原则
开:可以添加代码,新增代码
闭:对修改代码来说
添加新功能时,不希望对原有的代码进行修改
四、合成复用原则
给一个类添加功能:【继承】、【关联】
继承:子类可以获得父类的状态和行为(非private)
关联:
Order order=new Order();
order.user …xxxx…
Public class Order
{
Public User user=new User();
}
Public class User
{
Protect 属性
}
Public class Order:User //获取Order的行为和状态,可以修改User中的Protect属性
{
}
Is a—情况下使用继承 Has a—使用聚合 【桥接模式】合成复用原则的体现
五、迪米特法则
又称最少知道原则
类与类之间保持相对独立,这样才能降低耦合
类与类之间的通信问题:A<->B
不在A中引用B,在B中引用A。在A与B之间加中间件【redis,rabbitmq插件】
A<-middlesoft->B 【中介者模式】
六、接口隔离原则
不建议将几个类中的方法都提取到一个接口中,形成一个大的接口,然后让子类去继承这个接口
子类只继承自己需要的接口【最少化接口】
七、里氏转换原则
父类可以存在的地方,子类都可以替换,并且行为不发生改变
1.人类可以上厕所(可以)
人类
男人👨 女人👩
2.鸟类可以飞
鸟(Fly)
燕子(Fly) 企鹅🐧(企鹅不可以飞)