接口隔离原则

接口隔离原则

ID:44487375

大小:176.59 KB

页数:7页

时间:2019-10-22

接口隔离原则_第1页
接口隔离原则_第2页
接口隔离原则_第3页
接口隔离原则_第4页
接口隔离原则_第5页
资源描述:

《接口隔离原则》由会员上传分享,免费在线阅读,更多相关内容在工程资料-天天文库

1、设计模式六大原则(4):接口隔离原则分类:设计模式2012-02-2708:329178人阅读评论(10)收藏举报定义:客戸端不应该依赖它不需要的接口;一个类对另一个类的依赖应该建立在最小的接口上。问题由来:类A通过接口I依赖类B,类C通过接口I依赖类D,如果接口I对于类A和类B来说不是最小接口,则类B和类D必须去实现他们不需要的方法。解决方案:将臃肿的接口I拆分为独立的儿个接口,类A和类C分别与他们需要的接口建立依赖关系。也就是采用接口隔离原则。举例來说明接口隔离原则:接口Ix方法1/■■■■方法2方法3/方法

2、4方法5类B方法1方法2方法3^^5类D方法1施2施3方法4方法5(图1未遵循接II隔离原则的设计)这个图的意思是:类A依赖接口I中的方法仁方法2、方法3,类B是对类A依赖的实现。类C依赖接口I中的方法1、方法4、方法5,类D是对类C依赖的实现。对于类B和类D來说,虽然他们都存在着用不到的方法(也就是图中红色字体标记的方法),但由于实现了接口I,所以也必须耍实现这些用不到的方法。对类图不熟悉的可以参照程序代码来理解,代码如下:[java]2Wplain1.interfaceI{2・publicvoidmethod

3、l();3.publicvoidmethod2();4・publicvoidmethod3();5.publicvoidmethod4();6-publicvoidmethod5();7・}8.9・classA{10.publicvoiddepend:l(I11i•methodl();}publicvoiddepend2(Ii){i.method2();}publicvoiddepend3(Ii){i.method3();}}classBimplementsI{publicvoidmethodi(){System

4、.out-println(M类B实现接口I的方法1M);}publicvoidmethod2(){System.out•printIn(H类B实现接口I的方法2“);}publicvoidmethod3(){System.out.printIn(H类B实现接口I的方法3");}//对于类B來说,method4和method5不是必需的,但是由于接口A中有这两个方法,〃所以在实现过程中即使这两个方法的方法体为空,也要将这两个没何作用的方法进行实现。publicvoidmethod4(){}publicvoidmet

5、hod5(){}}classC{publicvoiddependl(Ii){i.methodl();}publicvoiddepend2(Ii){i.method4();}publicvoiddepend3(Ii){i.method5();}}classDimplementsI{publicvoidmethodi(){System.out

6、d2(){}56・publicvoidmethod3(){}57.58.publicvoidmethod4(){59.System.out.printIn("类D实现接III的方法4");60・}61.publicvoidmethod5(){62.System,out.printin(啖D实现接口I的方法5”);63.}64.}65.66.publicclassClient{67.publicstaticvoidmain(String[]args){68・Aa=newA();69.a.dependl(newB()

7、);70・a.depend2(newB());71.a.depend3(newB());72.72.Cc=newC();73.c.dependl(newD());74.c.depend2(newD());75.c.depend3(newD());76.}78・}interfaceT{publicvoidmethod1()publicvoidmethod3():publicvoidmethod4():▼

8、publicvoidmcthod20可以看到,如果:接口过于臃肿,只要接口中出现的方法,不管对依赖于它的类有没有

9、用处,实现类中都必须去实现这些方法,这显然不是好的设计。如果将这个设计修改为符合接口隔离原则,就必须对接口I进行拆分。在这里我们将原有的接口I拆分为三个接口,拆分后的设计如图2所示:(图2遵循接口隔离原则的设计)照例贴出程序的代码,供不熟悉类图的朋友参考:[java]plc'.in1.interfaceII{2.publicvoidmethodl();3-}4.5.int

当前文档最多预览五页,下载文档查看全文

此文档下载收益归作者所有

当前文档最多预览五页,下载文档查看全文
温馨提示:
1. 部分包含数学公式或PPT动画的文件,查看预览时可能会显示错乱或异常,文件下载后无此问题,请放心下载。
2. 本文档由用户上传,版权归属用户,天天文库负责整理代发布。如果您对本文档版权有争议请及时联系客服。
3. 下载前请仔细阅读文档内容,确认文档内容符合您的需求后进行下载,若出现内容与标题不符可向本站投诉处理。
4. 下载文档时可能由于网络波动等原因无法下载或下载错误,付费完成后未能成功下载的用户请联系客服处理。