背景
本文标题为什么叫小菜学习设计模式,原因是本文内容主要是学习《大话设计模式》时的笔记摘要部分,当然,并不是记录书中小菜的学习过程,这个完全没有意义,而是指本人学习设计模式的成长之旅。
真诚的希望自己能够从一名小菜成长为一名大鸟!
编写的程序应该满足:
1)可维护
2)可扩展
3)可复用
4)够灵活
废话少说,言归正传,设计模式原则之:接口隔离原则
书面理解
接口隔离原则:使用多个小的专门的接口,而不要使用一个大的总接口。
接口应该是内聚的,应该避免“胖”接口。一个类对另外一个类的依赖应该建立在最小的接口上,不要强迫依赖不用的方法,这是一种接口污染。
接口有效地将细节和抽象隔离,体现了对抽象编程的一切好处,接口隔离强调接口的单一性。而胖接口存在明显的弊端,会导致实现的类型必须完全实现接口的所有方法、属性等;而某些时候,实现类型并非需要所有的接口定义,在设计上这是“浪费”,而且在实施上这会带来潜在的问题,对胖接口的修改将导致一连串的客户端程序需要修改,有时候这是一种灾难。在这种情况下,将胖接口分解为多个特点的定制化方法,使得客户端仅仅依赖于它们的实际调用的方法,从而解除了客户端不会依赖于它们不用的方法。
分离的手段主要有以下两种:
1、委托分离,通过增加一个新的类型来委托客户的请求,隔离客户和接口的直接依赖,但是会增加系统的开销。
2、多重继承分离,通过接口多继承来实现客户的需求,这种方式是较好。
个人的理解
接口隔离原则主要就是避免过大的接口出现,其实也就得到了更多的接口问题。但是,只要满足接口之间的耦合性减弱,独立性提高,那么维护再多的接口也比维护一个大接口要强。接口如果一定义就注定包含了各种复杂的逻辑在里面,那么这个接口肯定是失败的,个人觉得,如果想要通过一个接口完成许多功能,可以通过外观模式、模板方法模式等进行小接口的组装完成。
接口隔离更突出的应该是隔离,不管怎么样程序设计最重要的一条原则是:高内聚、低耦合