缺省适配器模式有何局限性 请教:缺省适配器模式可以大量简化程序员的工作。但是,在某些时候,我们不能使用缺省适配器。请问何种情况下不能使用缺省适配器,缺省适配器模式最大的局限性是什么? 解决方案 » 免费领取超大流量手机卡,每月29元包185G流量+100分钟通话, 中国电信官方发货 呵呵,我的经验尚浅,还真的很难回答缺省适配的缺点。 不过有个缺点可能是个问题,使用缺省适配模式时,需要动用关键字extends,而我们知道在JAVA中继承只可以使用一次,如果还希望拥有其他体系结构的特性就不得不使用implements来扩展实现接口。 不过这个问题太过具体,不是很多时候都能遇到,但如果你需要使用适配模式的类同时有可能需要继承自其他体系,那么就需要多加考虑了,举个例子: interface Source { void first(); void second(); void third(); } abstract class Adapter implements Concrete { void first() { } void second() { } void third() { } } class Adaptee extends Adapter { void second() { // do something... } } 上例中,由于Adaptee继承自Adapter,所以不必在实现所有Source interface定义的method。这是非常让人愉快的。 可是,假设当程序深入之后,我们发现我们希望Adaptee class拥有线程的功能以应付多人并发访问的问题,麻烦来了,原先我们只需要 class Adaptee extends Thread { ... }可惜我们知道,在JAVA中extends只可以使用一次,那么我们不得不接口实现runnable interface以使我们的class拥有多线程的威力。当然问题还是解决了,可是如果我们期望再次继承的类不具备这样的解决方案呢?我想为此我们不得不提供诸如线程所提供的解决方案(或者重新设计一下,看看是否可以使用复合而非继承,这在时间与成本都允许的条件下是个决好的主义,但只有在时间与成本都能满足的时候)。 呵呵,在下愚钝,虽然上述问题在实际开发中并不多见,而且也能够获得相应的解决方案,不过如果是问麻烦之处,我还是觉得此问题算得上是个比较恼人的问题。@.@||~ 谁有塔防源代码(或者类似塔防游戏) java源代码 共享下 关于回旋数算法 用动态规划的方法求最长路径(在线等) 【转:Java基础知识部分汇总】学JAVA的都进来看一下吧【小熊猫】 请问这个程序哪错了 继承时候类的执行顺序问题 sos! java题目 谢谢 求100以内的素数? 怎样取得从SQL返回的XML结果集 java applet中如何取得APPLET的长度和宽度,如何进行STRING到INT的转换,有没有像ASP那样可以直接转化的函数 问个位大哥一个简单问题,很急,求你们了 静态
不过有个缺点可能是个问题,使用缺省适配模式时,需要动用关键字extends,而我们知道在JAVA中继承只可以使用一次,如果还希望拥有其他体系结构的特性就不得不使用implements来扩展实现接口。
不过这个问题太过具体,不是很多时候都能遇到,但如果你需要使用适配模式的类同时有可能需要继承自其他体系,那么就需要多加考虑了,举个例子:
interface Source {
void first();
void second();
void third();
}
abstract class Adapter implements Concrete {
void first() { }
void second() { }
void third() { }
}
class Adaptee extends Adapter {
void second() {
// do something...
}
} 上例中,由于Adaptee继承自Adapter,所以不必在实现所有Source interface定义的method。这是非常让人愉快的。
可是,假设当程序深入之后,我们发现我们希望Adaptee class拥有线程的功能以应付多人并发访问的问题,麻烦来了,原先我们只需要
class Adaptee extends Thread {
...
}
可惜我们知道,在JAVA中extends只可以使用一次,那么我们不得不接口实现runnable interface以使我们的class拥有多线程的威力。当然问题还是解决了,可是如果我们期望再次继承的类不具备这样的解决方案呢?我想为此我们不得不提供诸如线程所提供的解决方案(或者重新设计一下,看看是否可以使用复合而非继承,这在时间与成本都允许的条件下是个决好的主义,但只有在时间与成本都能满足的时候)。
呵呵,在下愚钝,虽然上述问题在实际开发中并不多见,而且也能够获得相应的解决方案,不过如果是问麻烦之处,我还是觉得此问题算得上是个比较恼人的问题。@.@||~