设计模式之六大原则总结

来源:互联网 发布:淘宝售后客服语言技巧 编辑:程序博客网 时间:2024/05/19 15:42

最近在学习设计模式,简单的总结一下,那就是继承,多态、封装的灵活运用,说的再详细一点,那就是面向对象的六大原则的运用,所以今天特意把这些原则总结一下,然后再去观察设计模式到底是运用了六大原则的那些,六大原则,一个设计模式学习好的考试

单一职责原则(SingleResponsibility Principle)

         概念:就一个类而言,应该仅有一个引起它变化的原因。因为如果一个类的职责过多就等于把一些功能耦合在一起,这种设计会使你的宝贝特别脆弱,当变化发生时,设计会遭受到你一向不到的破坏。

         所以在设计时,首先就要判断是否应该分离出来,方法就是如果我们能想到多以一个的动机去改变一个类,那么这个类就是多以一个的职责。例如游戏逻辑和游戏界面,我们的游戏时时刻刻的都在更换,但是有些基本逻辑的不用变的,比如说植物大战僵尸,植物大战僵尸2,难道我们就因为更换了一下界面就要把所有的东西都改吗,这个时候你能理解单一职责的重要性了吧。

         优点:增加了代码的复用性。

开放—封闭原则(Closed-Opened Principle)

         概念:软件实体(类,模块,函数等等)可以扩展,但是不可以修改。开发-封闭原则的原理是希望我们在设计事就要考虑的周全,尽量在有新的需求的时候不要修改原来的类,而是通过增加新的类来满足客户的需求。

         设计时,对于变化时,我们可以采取创建抽象来隔离同类的变化,这样防止以后维护的的难度和费用等问题的出现。

优点:开放-封闭原则是面向对象的核心部分,如果一个程序始终按照开放-封闭原则开发,那么也就增加了系统的可维护性,可扩展性,可复用性,和灵活性。

依赖倒转原则(DependenceInversion Principle)

         概念:高层模块不应该依赖低层模块,两个都应该依赖抽象。抽象不应该依赖细节,细节应该依赖于抽象。

         高层模块依赖低层模块就是说比如我们要访问数据库时,都是调用事先编好的函数,这些函数就是低层模块,但是我们做业务逻辑的高层模块都是一样的,如果高层依赖于低层,那么也就无法是实现它的复用。

         通俗点就是依赖倒转原则让模块谁也不依赖谁,除了约定的接口,大家都可以灵活自如。

         优点:所有的依赖关系都终止于抽象类或者接口。增强了代码的灵活性。

迪米特法则(Law ofDemeter)

         概念:如果两个类不必彼此直接通信,那么这两个类就不应当发生直接的相互作用。如果其中的一个类需要调用另一个类的某一个方法的话,可以通过第三者转发这个调用关系。

         这个原则不仅在软件中实现了松耦合的现象,在现实中也是非常有用的,现在的农民工不是经常要不到工资,总是被各种理由去推脱这个事自己管不了,如果有一个中间者,那么事情是不是就简单多了呢。

里氏代换原则(Liskov Substitution Principle,简称LSP)

       概念:一个软件实体如果使用的是一个父类的话,那么一定适用于其子类,而且它觉察不出父类对象和子类对象的区别,也就是说,在软件里,把父类都替换成他的子类,程序也不会有什么变化。

合成聚合复用原则

概念:尽量使用合成/聚合,尽量不使用类继承。

合成聚合是“has  a”的关系,而继承是“is  a”的关系。由于继承是一中强耦合的结构,父类变,子类必变。所以不是“is a”关系,我们一般不要用继承。优先使用合成聚合复用原则,有助于保持每个类的封装,降低继承的层次。

0 0
原创粉丝点击