在现实中有这样的一种情况,在车站售票窗口总是排满人,而排队的人并不是都是为了买票而排的,其中有些人是查开车信息,有些人可能是为了退票,但他 们都必须按照车站的规矩排在同一窗口中。这时你会想到为什么不多开几窗口,每个窗口给予不同的功能,让不同需求的人排在不同的窗口, 这样就可以节约大量的时间和人力。
同样,在软件设计中,“胖”接口会强制所有的继承的类型实现其所有的方法,而有些方法对于客户来说是无用的,这种情况对接口来说就是一个“浪费”,而接口隔离原则(ISP)正是应对这种情况而设计的标准。
接口隔离原则的核心思想:
使用多个小的专门的接口,而不要使用一个大的总接口。
具体而言,接口隔离体现在:
A.接口应该是内聚的,应该避免出现“胖”接口。
B.一个类对另一个类的依赖应该建立在最小的接口上,不要强迫依赖不用的方法,这是一种接口污染。
接口分离的手段主要有以下两种:
1.委托分离,通过增加一个新的类型来委托客户的请求,隔离客户和接口的直接依赖,但会增加系统开销。
2.多重继承分离,通过接口多继承来实现客户需求,这种方法值得推荐。
以上就是我看了《你必须知道的.NET》的一些体会。我觉得这本写得真的非常好,很实际,值得一看。