一 什么是设计模式?
设计模式是一种对编写代码的总结,一种代码规范,教我们写出一篇优秀的代码,让代码有较强的可读性,维护性,健壮性,拓展性。
二 设计模式六大原则:
开闭原则 : 单一职责原则,里式替换原则,依赖倒转原则,接口隔离原则,迪米特法则
开闭原则:拓展开放,修改关闭。在软件设计过程中往往会添加新的需求,或者需求变更,会让我们对写好的代码进行修改,代码修改可能会让以往的功能发生错误,或者影响其他的功能模块,不得不重新测试
解决方案:扩展实体行为实现变化;尽量添加新的类或者方法实现功能,而不是在以往的代码上修改,添加if else或者switch什么的分支
单一职责原则:一个类负责过多的功能实现,这就相当于将过多的职责耦合在一起,当有变化时候,会导致程序错误或者引起其他不必要的麻烦;比如说代码冲突
例如:public class A{
public void methord(){
methord2();
};
public void methord2(){};
}
如果B类调用A的methord2();而methord2不能实现功能,修改methord2的代码,可能会导致methord1承担的功能无法正常实现。并且这个类代码过多,实际开发中多人修改这个类,提交代码冲突的概率就比较大,引起不必要的麻烦
解决方案:创建新的类,不同的类完成不同的功能,减少类与类之间的耦合度
里式替换原则:在一个软件中用基类对象替换子类对象,程序将不会产生任何错误和异常
解决方案:在使用继承时,不要重写和重载父类的方法,尽量新添加方法实现功能
依赖倒转原则:高层模块不应该低层模块,二者应该依赖其抽象,抽象不应该依赖细节,细节应该依赖抽象
例如:public class A{
private B b;
}
如果A不在依赖B而依赖C,就要修改A中的代码,就会影响A中代码的执行
改进:A 中依赖接口,B 和C实现接口
接口隔离原则:一个接口除了负责它本身的只能外,不负责其他事情。不要将很多方法写在一个接口中,这样会显得接口很臃肿。不同的类应该实现不同的接口,尽量细化接口
解决方案:接口拆分,实现类分别与他们依赖的接口建立依赖关系
迪米特法则:最少知识法则,类与类之间尽量少发生相互关系
例如:public class A{
public static void main(String[] args){
B b=new B();
b.methord1();
b.methord2();
...
}
}
此时类A和类B就有多次冲突,B不应该把每一个方法暴露给A,只需要给A一个入口就行
解决方案:尽量降低类与类之间的耦合度
转载于:https://www.cnblogs.com/xiaoxiannvBlog/p/9427775.html