现在有两个类A、B
类A为监听类,需要提供一个接口给B当A收到客户端的请求时,需要B来调用A,来实现A的后半部分代码。
class A{
public void listen{
//我的A类代码
//B类来实现的代码
}
}问:A类要怎么做,才能成为这种接口。及A类的前半部分代码是写死在A类中的,但A类收到客户端信息
后,继续执行的后半部分代码在B类中,并且B类是任意的东西,及A是提供接口。
类A为监听类,需要提供一个接口给B当A收到客户端的请求时,需要B来调用A,来实现A的后半部分代码。
class A{
public void listen{
//我的A类代码
//B类来实现的代码
}
}问:A类要怎么做,才能成为这种接口。及A类的前半部分代码是写死在A类中的,但A类收到客户端信息
后,继续执行的后半部分代码在B类中,并且B类是任意的东西,及A是提供接口。
super.listen();..//B's additional operation
}
}publc class C extends A {public void listen () {
super.listen();..//C's additional operation
}
}
If you want to use yhese listener, you can construct a factory to create a specific child class.
public ListenerFactory {
public static A createListener(String childName) {//input the name of child class
return (A)Class.forName(childName).newInstance();
}
}
可能是我描述的不够清楚的缘故!
客户端发送信息,A类收到,A类按照自己的固定代码处理后,还有能够按照B类的部分代码来运行。
如:A类接收到数据后,B类需要对数据进行处理,而这个处理是不确定的。就是说,B类中的代码是可变的。 我希望是这样,A类的后半部分代码是可变的,可以由B类来填充,也可以由C类,甚至D类来填充!
例如是要先连接数据库,然后插入记录,最后撤销连接。由于不同的数据库的操作有不同,所以无法固定编码。此时楼主应该在A中编写函数connect(),insert(),和disconnect()。在A的main()函数中写
main{
connect();
insert();
disconnect();
}由于以上3个函数只有定义,没有实现,必须有实现接口的类实现。
这样就可以在A类中规定操作步骤的顺序,但是没有规定具体实现。
然后其他继承的类B,C,D,甚至更多,他们的listen方法里面首先调用super.listen(),也就是说首先执行A的固定代码,然后再执行自己的特有的代码。
B,C,D可以实现自己的listen方法,然后使用最后那个factory生成特别的实现类,参数就是类的名字,那么这样不就是你所说的后面是可变的了吗?
public void actions();
}
public class B implements C{
public void actions(){//do something here;};}
public class A{
public void doThings(C c){
//A's code;
c.actions();
}
}应用
public class app{
public static void main(String args[]){
B b=new B();
A a=new A();
a.doThings(b);//
}
}
B类实现统一的接口,那么在A中调用时,只要在传入参数时指定好正确的B类型就可以
了。不知道这样能否解决楼主的问题
{
public Hashtable[] getClass() ;
}
public class B implements A
{
public Hashtable[] getClass()
{
………………
return hb;
}
}