首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > JAVA > J2SE开发 >

请问一个方法设计有关问题

2012-09-02 
请教一个方法设计问题请教大家一个问题,为了描述方便我换成了伪代码:Java codepublic class A {private AA

请教一个方法设计问题
请教大家一个问题,为了描述方便我换成了伪代码:

Java code
public class A {        private AA aa;        private BB bb;        public Object A() {            if (条件成立) {                aa = new AA();                // 省略N行代码            } else {                bb = new BB();                // 省略N行代码            }        }    }


因为省略部分都是一样的,而且代码颇多,所以我想写一个方法,根据条件返回相应的对象,不知道行否。

[解决办法]
Java code
public interface InterfaceName {}class AA extends InterfaceName {}class BB extends InterfaceName {}public class A {    public Object A() {        method( 条件成立 ? new AA() : new BB() );  }  private void method(InterfaceName arg) {    // ...  }}
[解决办法]
可以看下类似工厂模式的方法。
不过返回的对象可以有统一的接口,就是AA和BB实现统一的一个接口。
[解决办法]
如果AA和BB,是相同类型的对象,那么可以继承于抽象类AB,继而用工厂方法,这样,显得逻辑更清楚。
[解决办法]
用一个专业词来描述的话,楼主这个要求的实现思想,是个标准的"多态"啊。
三个条件:继承,重写,父类应用指向子类对象。

热点排行