码迷,mamicode.com
首页 > 其他好文 > 详细

设计模式概述

时间:2018-08-06 00:39:08      阅读:167      评论:0      收藏:0      [点我收藏+]

标签:分支   知识   拓展   else   迪米特   不能   if else   代码   依赖倒转原则   

一 什么是设计模式?

设计模式是一种对编写代码的总结,一种代码规范,教我们写出一篇优秀的代码,让代码有较强的可读性,维护性,健壮性,拓展性。

二 设计模式六大原则:

开闭原则 : 单一职责原则,里式替换原则,依赖倒转原则,接口隔离原则,迪米特法则

开闭原则:拓展开放,修改关闭。在软件设计过程中往往会添加新的需求,或者需求变更,会让我们对写好的代码进行修改,代码修改可能会让以往的功能发生错误,或者影响其他的功能模块,不得不重新测试

解决方案:扩展实体行为实现变化;尽量添加新的类或者方法实现功能,而不是在以往的代码上修改,添加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一个入口就行

解决方案:尽量降低类与类之间的耦合度

设计模式概述

标签:分支   知识   拓展   else   迪米特   不能   if else   代码   依赖倒转原则   

原文地址:https://www.cnblogs.com/xiaoxiannvBlog/p/9427775.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!