源码
七个设计原则
一、单一职责原则
思想
一个类 作一类事情 (不然高内聚)
二、里氏替换原则
思想
尽量不要重写父类中已经存在的方法
三、依赖倒置原则
思想
将一个对象(类)传入到另一个类中,要通过这个类的接口或者抽象进行接收(当添加一个功能时直接再写一个接口实现类传入即可)
代码
//违反依赖倒置原则
public void fun(Persion persion){
}
//正确写法
public void fun(PersionInterface persion){
}
四、接口隔离原则
思想
实现接口,要求实现的方法都有用,不要实现多余的方法 (将接口拆分,然后分别实现)
五、迪米特法则
与本类为朋友关系的类为:
1.本类成员变量
2.本类方法中传入参数
3.本类方法中返回参数
思想
如果在本类中出现非朋友关系的类,那么就违反了迪米特法则
(相当于 将不是本类的代码写在了本类中,目的不要将自己的代码暴漏给别的类)
六、开闭原则(最核心)
思想
当开发好框架,当有新需求时 只用写几个实现类即可完成需求(通过扩展实现需求)
代码
//如果想多加一种人创建一个类继承ManPersion 即可
public void say(persionInterface persion){
persion.say();
}
public class ManPersion implements persionInterface {
abstract say();
}
public class MinManPersion extends ManPersion {
void say(){
}
}
public class MaxManPersion extends ManPersion {
void say(){
}
}
七、合成复用原则
思想
尽量使用组合/聚合,少用继承 (因java单继承,继承后扩展性降低)
替换继承的方法
1.通过子类的构造方法将父类对象传递给子类
2.通过子类的set方法将父类对象传递给子类
3.在子类中创建父类对象,然后子类调用父类中的方法
一、设计模式的分类
总体来说设计模式分为三大类:
创建型模式(创建对象上使用的模型),共五种:工厂方法模式、抽象工厂模式、单例模式、建造者模式、原型模式。
结构型模式(代码结构的模型),共七种:适配器模式、装饰器模式、代理模式、外观模式、桥接模式、组合模式、享元模式。
行为型模式(方法的模型),共十一种:策略模式、模板方法模式、观察者模式、迭代器模式、责任链模式、命令模式、备忘录模式、状态模式、访问者模式、中介者模式、解释器模式。
状态模式
简单来说:就是根据不同状态(参数),会有不同的行为(方法)
从而减少 if else 的使用
场景
有一个借贷平台,它要给别人贷款
贷款有一系列流程,在每个流程都有不同的状态(生成订单、审核、发布、代付款、付款、已付款、完结) 这时候就要用到状态模式的思想了,不然写的代码会很乱同时不方便维护