小菜学设计模式——迪米特原则

    背景

    本文标题为何叫小菜学习设计模式,缘由是本文内容主要是学习《大话设计模式》时的笔记摘要部分,固然,并非记录书中小菜的学习过程,这个彻底没有意义,而是指本人学习设计模式的成长之旅。编程

    真诚的但愿本身可以从一名小菜成长为一名大鸟!
设计模式

    编写的程序应该知足:
安全

    1)可维护
学习

    2)可扩展spa

    3)可复用
设计

    4)够灵活
orm

    废话少说,言归正传,设计模式原则之:迪米特原则(最少知识原则)
接口

    书面理解

    迪米特原则:若是两个类没必要彼此直接通讯,那么这两个类就应当发生直接的相互做用。若是其中一个类须要调用另外一个类的某一个方法的话,能够经过第三者转发这个调用。数学

    迪米特法则强调的前提是在类的结构设计上,每个类都应当尽可能下降成员的访问权限,也就是说,一个类包装好本身的private状态,不须要让别的类知道的字段或行为就不要公开,其实就是在封装一个类的时候尽可能明确这个类的属性和操做属性的方法。it

    迪米特法则的根本思想,是强调类本身的松耦合。

    类之间的松耦合越弱,越有利于复用,一个处在弱耦合的类被修改,不会对有关系的类形成波及,换句话说,信息隐藏促进了软件的复用。


    我的的理解

    迪米特法则也被称之为最少知识原则。所谓最少知识不是这个类的功能越弱越好,前面说过对类定义只要知足单一职责,而是,但愿这个类暴露在外面的东西越少越好。之前只知道使用private能够保护成员变量不被外界直接操做,从而加强了类的安全性。如今,发现private不只有安全性还能够下降类之间的耦合性。当两个类之间没有直接联系的时候,那么这两个类的耦合度会变低,从而更容易扩展了。

    生活中的具体实例,小时候很喜欢问数学题,下课后总喜欢拿着数学卷子往数学教学小组办公室跑,由于,很差意思因此每次都是拿着卷子直接找咱们的数学授课老师李老师,这就至关于我只认识数学李老师一我的,把其余数学老师都忽略了,那么我和李老师构成了一种直接的依赖关系。结果有一天,李老师有事不在,那么个人问题就不能马上解决,这时问题来了,其余老师都很闲,并且他们也必定可以帮我解决这个问题,但是由于我只会问李老师,因此错过了解决问题的机会。若是把数学教学小组看作一个抽象的接口,而我直接调用这个接口的方法,那么就是,我去办公室问题老师题目,全部老师当中总有一个会帮我来解决问题。而数学小组的人员构成我不用知道,老师是如何解决我也不用知道,总之这个问题交付给他们,他们就要给出答复。

    总结一下,类与类之间调用时,若是一个类须要被扩展,或者预计后期会发生变化,那么最好采用调用这个类的接口,这样面向接口编程而不是面向过程(具体)编程,这样其实解决了类与类之间的直接耦合关系。为了更好的解决这种耦合关系,咱们应该尽可能把一个类封装得安全私有,一类没必要要暴露的属性尽可能不要被外界调用,把他设为本身的私有属性或方法。

相关文章
相关标签/搜索