public class A extends SireClass
{
B oper = new B();
oper.operData();
}别的类new A()生成对象
现在我想在oper.operData中调用那个聚合它的A的对象的一个方法,那个方法是A从SireClass继承来的, 并不了解它的机理, 所以不能把它添加在B里, 有什么办法吗?
还是这样的设计思路就有问题??另外顺便再问一个问题,关于包装类比如
PrintWriter out
= new PrintWriter(new BufferedWriter(new FileWriter("foo.out")));
我在最外层的操作时希望能调用一个内层的方法, 比如说我想在用out.writ()后自己写一个空行,
我就希望可以调用BufferedWriter.newLine(); 而不用我自己判断操作系统换行属性, 应该怎么做呢?以上仅是举个例子
{
B oper = new B();
oper.operData();
}别的类new A()生成对象
现在我想在oper.operData中调用那个聚合它的A的对象的一个方法,那个方法是A从SireClass继承来的, 并不了解它的机理, 所以不能把它添加在B里, 有什么办法吗?
还是这样的设计思路就有问题??另外顺便再问一个问题,关于包装类比如
PrintWriter out
= new PrintWriter(new BufferedWriter(new FileWriter("foo.out")));
我在最外层的操作时希望能调用一个内层的方法, 比如说我想在用out.writ()后自己写一个空行,
我就希望可以调用BufferedWriter.newLine(); 而不用我自己判断操作系统换行属性, 应该怎么做呢?以上仅是举个例子
{
B oper = new B();
oper.operData();
}这段代码首先就有问题的吧???
而且照你的设计A,B是相互依赖的,如果是这样的话,那就应该把B.operData()提取到A里来,这样A就不用依赖于B了。
public class SireClass {}//这个类是别人提供的jar, 不可更改
public class ThrowA { //用作启动运行类, 主要是考虑到A的对象以后可能只作为一个组件
public static void main(String[] args) {
A a = new A();
a.runcode();
public class A extends SireClass
//A的作用是获取SireClass提供的方法并且加入实际需要的更改, SireClass提供了对一些我
//不了解也不需要理解(主要是前者= =)的事件的操作, 比如说封装了一个特殊服务, 用它所
//提供的方法来访问和操作它
{
B oper = new B();//一个对于数据比较复杂的操作
C otheroper = new C();//另一个操作
if (isBoolean(data))//可能有多种判断反复调用oper.operData和otheroper.operData
oper.operData(data);
else
otheroper.operData(data);
}
public class B {
public void operData(){
...
A.reService(opereddata);//问题就在这里,class C的情况类似就不写了
}reService()的方法是SireClass提供的, B和C没法获得, B和C分别代表了一些比较复杂的
操作, 整合到A里是可以的, 但是我觉得分开比较清晰一些...另外每增加一个新的操作
就聚合一个新的对象也比较容易维护...(B和C有自己的一些成员数据, 不过整合到A里也是
可以的, 只是A的体积又大了一些)不知道这样的设计思路是不是有什么问题呢?请教
另外也诚恳的希望大家能提供更好的设计思路, 十分感谢
public class ThrowA { //用作启动运行类, 主要是考虑到A的对象以后可能只作为一个组件
public static void main(String[] args) {
A a = new A();
a.runcode();
}
}public class A extends SireClass
//A的作用是获取SireClass提供的方法并且加入实际需要的更改, SireClass提供了对一些我
//不了解也不需要理解(主要是前者= =)的事件的操作, 比如说封装了一个特殊服务, 用它所
//提供的方法来访问和操作它
{
B oper = new B();//一个对于数据比较复杂的操作
C otheroper = new C();//另一个操作
if (isBoolean(data))//可能有多种判断反复调用oper.operData和otheroper.operData
oper.operData(data);
else
otheroper.operData(data);
}
public class B {
public void operData(){
...
A.reService(opereddata);//问题就在这里,class C的情况类似就不写了
}
}
只是为了使用它的一个方法就都继承过来的话, 似乎不太好....?