日拱一卒(三十)

迪米特法则(LoD):如果两个类不能彼此直接通信,那么这两个类就不应到发生直接的作用。如果其中一个类需要调用另一类的某一个方法的话,可以通过第三方转发这个调用。

             白话:Android中Intent类就是这个很好的实例,Activity,Service之间设计就是这样的松耦合,他们不直接通信,而是用Intent这个第三方来通信。

             优点:类之间松耦合,当其中的类被修改时,不会对有关系的类造成波及,提高了维护性。



外观模式(facade):为子系统中的一组接口提供一个一致的界面,此模式定义一个高层接口,这个接口使得这一子系统更加容易使用。

             白话:当客户端要使用服务器类涉及到很多小类时,可将这组合成一个外观类facade封装这些小类提供给客户端,这样客户端只需跟这个外观类facade交互,降低了客户款交互的复杂性。

             注意:可能认为这跟代理模式很像,关键是facade类与下面的SubSystem等类组合的关系,不存在共同的接口。而代理则是真实对象和代理存在共同接口。

           

日拱一卒(三十)_第1张图片


     场景:(1)设计初期阶段,应该有意识的将不同层分离,层与层之间建立外观模式。
              
 (2) 开发阶段,子系统越来越复杂,增加外观模式提供一个简单的调用接口。
              
 (3) 维护一个大型遗留系统的时候,可能这个系统已经非常难以维护和扩展,但又包含非常重要的功能,为其开发一个外观类,以便新系统与其交互。

日拱一卒(三十)_第2张图片

                                    



你可能感兴趣的:(日拱一卒(三十))