欢迎来到天天文库
浏览记录
ID:30520784
大小:17.81 KB
页数:9页
时间:2018-12-31
《设计模式六大原则(4):接口隔离原则》由会员上传分享,免费在线阅读,更多相关内容在应用文档-天天文库。
1、我真正系统地接触和学习党的基本知识是在这次中级党校的培训班上。通过学习,了解了党的发展历程,对党的性质、宗旨、任务等基本知识有了进一步的了解设计模式六大原则(4):接口隔离原则 定义:客户端不应该依赖它不需要的接口;一个类对另一个类的依赖应该建立在最小的接口上。 问题由来:类A通过接口I依赖类B,类C通过接口I依赖类D,如果接口I对于类A和类B来说不是最小接口,则类B和类D必须去实现他们不需要的方法。 解决方案:将臃肿的接口I拆分为独立的几个接口,类A和类C分别与他们需要的接口建立依赖关系。也就是采用接口隔离原则。 举例来说明接口隔离原则: (图1未遵循接口隔离原则
2、的设计) 这个图的意思是:类A依赖接口I中的方法1、方法2、方法3,类B是对类A依赖的实现。类C依赖接口I中的方法1、方法4、方法5,类D是对类C依赖的实现。对于类B和类D来说,虽然他们都存在着用不到的方法(也就是图中红色字体标记的方法),但由于实现了接口I,所以也必须要实现这些用不到的方法。对类图不熟悉的可以参照程序代码来理解,代码如下: interfaceI{ publicvoidmethod1(); publicvoidmethod2();对党的认识也有了进一步的提高。才真正体会到了中国共产党的伟大、光荣和正确,更感到只有中国共产党是全中国最广大人民利益的忠实代
3、表我真正系统地接触和学习党的基本知识是在这次中级党校的培训班上。通过学习,了解了党的发展历程,对党的性质、宗旨、任务等基本知识有了进一步的了解 publicvoidmethod3(); publicvoidmethod4(); publicvoidmethod5(); } classA{ publicvoiddepend1(Ii){ i.method1(); } publicvoiddepend2(Ii){ i.method2(); } publicvoiddepend3(Ii){ i.method3(); } } classBimplemen
4、tsI{ publicvoidmethod1(){ System.out.println("类B实现接口I的方法1"); } publicvoidmethod2(){ System.out.println("类B实现接口I的方法2"); }对党的认识也有了进一步的提高。才真正体会到了中国共产党的伟大、光荣和正确,更感到只有中国共产党是全中国最广大人民利益的忠实代表我真正系统地接触和学习党的基本知识是在这次中级党校的培训班上。通过学习,了解了党的发展历程,对党的性质、宗旨、任务等基本知识有了进一步的了解 publicvoidmethod3(){ System.o
5、ut.println("类B实现接口I的方法3"); } //对于类B来说,method4和method5不是必需的,但是由于接口A中有这两个方法, //所以在实现过程中即使这两个方法的方法体为空,也要将这两个没有作用的方法进行实现。 publicvoidmethod4(){} publicvoidmethod5(){} } classC{ publicvoiddepend1(Ii){ i.method1(); } publicvoiddepend2(Ii){ i.method4(); } publicvoiddepend3(Ii){ i.met
6、hod5(); } } classDimplementsI{对党的认识也有了进一步的提高。才真正体会到了中国共产党的伟大、光荣和正确,更感到只有中国共产党是全中国最广大人民利益的忠实代表我真正系统地接触和学习党的基本知识是在这次中级党校的培训班上。通过学习,了解了党的发展历程,对党的性质、宗旨、任务等基本知识有了进一步的了解 publicvoidmethod1(){ System.out.println("类D实现接口I的方法1"); } //对于类D来说,method2和method3不是必需的,但是由于接口A中有这两个方法, //所以在实现过程中即使这两个
7、方法的方法体为空,也要将这两个没有作用的方法进行实现。 publicvoidmethod2(){} publicvoidmethod3(){} publicvoidmethod4(){ System.out.println("类D实现接口I的方法4"); } publicvoidmethod5(){ System.out.println("类D实现接口I的方法5"); } } publicclassClient{ publicstaticvoidmain(String[]args)
此文档下载收益归作者所有