设计模式系列——设计原则之接口隔离原则

接口隔离原则,这里面两个词,一个是接口,一个是隔离。

 

什么是接口呢?

接口可以分为两类,一类是实例接口,一类是类接口。

 

分别什么意思呢?

实例接口,指的是实例对象的类是一个接口,比如,Animal fish = new Animal(); fish是实例对象,而Animal则是实例接口。

类接口,指的是用关键字interface修饰的类。

 

在说完什么是接口之后,再来说说什么是接口隔离。

 

因为接口有两种含义,那么接口隔离也有两层含义,一个是实例接口的接口隔离,一个是类接口的接口隔离。

 

实例接口的接口隔离,指的是类的功能要尽可能的抽象不可分,比如,Animal这个类 可以提供 吃饭(eat())、睡觉(sleep())、活动(move())这一类的方法,但是却不可以提供 飞行(fly())、游动(swim())这一类的方法,使得其他动物都可以继承Animal,这样做到了抽象和现实的隔离。

 

类接口的隔离,指的是接口中的方法尽可能功能单一,比如,美女接口(Pretty),中有好的面孔(goodFace())、有好的身材(goodFigure())和有好的气质(good temperament()),这个美女接口的实现类要去实现这三个方法,有一天人们的审美变了或是美女的标准下降,只需要满足这三个中的一个就可以被称为美女,那么当再次实现美女接口的时候,其中会有两个实现会空在那,这样每新增实现一个美女接口,就会产生一些冗余代码,所以按照接口隔离原则,应该将美女接口拆分成三个标准的接口,这样不管美女的标准如何变化,都可以将这些标准进行组合来达成。

 

值得注意的是,接口隔离原则是一个没有明确标准的原则,因此如何保证接口隔离是一门艺术,所以在按照接口隔离原则,不需要过分隔离。

 

如果硬要说有什么标准的话,就是接口隔离原则,首先必须满足单一职责原则。

 

posted on 2021-11-21 23:21  时间人生  阅读(63)  评论(0)    收藏  举报

导航