如果你的类的结构体系中,某一个类要扩充功能怎么办?你不能去修改它的超类吧,因为一般而言,它的超类还有超类呢。
(而且如果你使用别人提供的类,根本就不可能去修改它)也许你要一直追溯到Object都不行。可是使用接口,
你想给这个体系中的某个类扩充功能,
只需要给这个类实现一个新的接口,自然就会提供新的功能,
丝毫不会影响它的超类,
而它的子类自动也扩充了它新增加的这个接口的方法(有点象C++多继承)。这使的软件的功能扩展变得更容易。设计模式中有一条开闭原则,
说:软件实体必须都修改关闭,对扩展开放。使用接口,就可以满足这样的设计要求。
(而且如果你使用别人提供的类,根本就不可能去修改它)也许你要一直追溯到Object都不行。可是使用接口,
你想给这个体系中的某个类扩充功能,
只需要给这个类实现一个新的接口,自然就会提供新的功能,
丝毫不会影响它的超类,
而它的子类自动也扩充了它新增加的这个接口的方法(有点象C++多继承)。这使的软件的功能扩展变得更容易。设计模式中有一条开闭原则,
说:软件实体必须都修改关闭,对扩展开放。使用接口,就可以满足这样的设计要求。
解决方案 »
- 如何判断socket客户端连接断开?
- 抽象类和接口到底有哪些异同?
- JAVA多维数组问题
- 怎么把1到9999的数字转成 4位字符串,左边补0 如 0001 0002 0003
- PrepareStatement的executeUpdate语句返回值问题?
- 一个简单的java接口例子,请指点。
- 国际化的问题, 遇到时区时大家都是怎么做的
- 救命呀:java.lang.SecurityException: access denied (javax.management.MBeanTrustPermission register)
- 关于读取文件的问题,请高手帮忙
- 请教一个小问题.
- 在线高分求助:如何将下面的应用程序(Application)转化为小应用程序(Applet)???成功者马上得分!!!
- 提示错误:Exception:java.lang.NoClassDefFoundError:com/borland/jbcl/layout/XYLayout 如何解决
"如果你的类的结构体系中,某一个类要扩充功能怎么办?
你不能去修改它的超类吧,因为一般而言,它的超类还有超类呢。" 接口是什么? 就是一个面,对于一个类而言; 它可能有很多的功能; 但是,我们要使用的就是其中的一部分; 那么开一个接口,把服务提供,把实现封装; 一个对象可以实现多个接口; 感觉有了!!!!! 哈哈
但是问题跟着来了? 系统分析过程中,我们很容易发现接口;但是一系列的接口是否就决定了对象; 或者接着如何得到对象? java中interface和class是分离的? 5555: 是否说设计只要接口,不用考虑对象; 因为对象只是接口的实现;
感觉不对呀?????????
接口就好比电源插座,Class好比就是电器,
我们不管是什么电器,只要都实现了电源插座的接口,
当我们想看电视的时候就把电视的插头插上去,
当我们想上网,把电脑插头插上去.
.....
如果我们没有规定接口,谁都实现自己的独立对外接口,
我们可以想象:
当我们要看电视的时候,我们去接一条专用插座,然后接上电视里;
当我们再要去上网时,我们把电视专用插座拆了,再换上电脑专用的插座,再连上去,
.....................
当然第一种好了.
我们来这里讨论就是谈谈自己的理解,相互学习;
只是看书,还只是一个人的理解. 最近在看,设计模式 c++对象模型 c++编程思想
悟,5555 :0
接口就是class的一个面; 一个class可以有多个面;
这么说,interface与class有本质的不同; 但是,c++中没有把两者给分开;
如果你的类的结构体系中,某一个类要扩充功能怎么办?
你不能去修改它的超类吧,因为一般而言,它的超类还有超类呢。”,不理解,如果我要扩充某个类A的功能,我为什么要修改超类呢,我直接修改A不就可以吗,而且A的子类也可使用这些扩充的功能啊,为什么一定要用接口啊