如何用面象对象的方法设计一个通用的方法,达到:1、传递不同的对象到服务器端 2、服务器端根据传来的不同对象,调用不同的处理方法 (21分)

  • 主题发起人 主题发起人 mycwcgr
  • 开始时间 开始时间
M

mycwcgr

Unregistered / Unconfirmed
GUEST, unregistred user!
如何用面象对象的方法设计一个通用的方法,达到:1、传递不同的对象到服务器端 2、服务器端根据传来的不同对象,调用不同的处理方法
我想使用面象对象的方法设计一个通用的方法,达到:
1、用通用的方法传递不同的对象到服务器端 2、服务器端根据传来的不同对象,调用不同的处理方法该对象
请问下面的设计是否合理?
//---------------------客户端的对象----------------------------------
(1)对象
public class data_base implements Serializable{
protected String commandtype;
public data_base(String commandtype){
this.commandtype=commandtype;
}
}
(2)对象
public class data_login extends data_base {
Tmyobject1 myobject1 //Tmyobject1是另外一个对象
public data_login(Tmyobject1 myobject1){
super("data_login") ;
this.myobject1=myobject1
}
}
(3)对象
public class data_update extends data_base {
Tmyobject2 myobject2 //Tmyobject2是另外一个对象,这个对象的数据结构与Tmyobject1完全不同
public data_update(Tmyobject2 myobject2){
super("data_update") ;
this.myobject2=myobject2
}
}
//---------------------客户端的对象---------------------------------

//---------------------客户端通用的方法(将客户端的对象传递给服务器端)--
通用方法名为send_to_server(data_base mydata_base );
则传递第(2)对象的调用为send_to_server( new data_login(myobject1) ) //子类转化为父类是合理的
则传递第(3)对象的调用为send_to_server( new data_update(myobject2) ) //子类转化为父类是合理的
//---------------------客户端通用的方法(将客户端的对象传递给服务器端)---


//---------------------服务器端通用的方法--------------------------------
通用方法名为get_from_client(data_base mydata_base );
1: void get_from_client(data_base mydata_base ) {
2: if (mydata_base.equals("data_login")) {
3: data_login mydata_login=(data_login)mydata_base ;
//强制转化为子类
4: 方法一 (参数为mydata_login) //调用方法一,传递data_login 类型的参数
5: }
6: if (mydata_base.equals("data_update")) {
7: data_update mydata_update=(data_update) mydata_base//强制转化为子类
8: 方法二 (参数为mydata_update) //调用方法二,传递data_update 类型的参数
9: }
10: }
疑问:第3和7行,将父类转化为子类,虽然不会出错,但总是与面象对象的编程方法相违背,上面的设计是不是出了问题?
//---------------------服务器端通用的方法--------------------------------
 
感觉你没有按照类继承的思维去做
oo中应该支持isInstanse之类的方法
用来确定一个实例真正的类型的
而你用的是自己写的一个方法来实现的
不过你的方法是可以用的啊
不好看而已
可以这样做:
在父类做一个纯虚函数
使用oo里的多态就可以了
 
"可以这样做:
在父类做一个纯虚函数
使用oo里的多态就可以了 "
您的方法在本题中不可行,因为每个子类的数据结构都不相同,方法也各不相同,如果要做 纯虚函数 则要写很多虚函数,父类会非常庞大!
 
用新技术吧!!
 
我觉得这个方案是否行不通?
两方通讯都要求一个确定的通用的接口,
但是按你的意思,实际上运行什么方法将是任意的,即通用接口是任意的,不确定的!
应该不可能把!
 
鉴于你的架构中太多的“不确定性”,个人认为,传统意义的设计观念已经不能满足你的
需要,建议采用AI系统中的多Agent模型——各个Agent通过消息或者黑板进行信息传递,信
息的格式是统一的,信息的入口也是唯一的,而对信息的解释和处理则由各个Agent自己内
部完成。
 
完全可以实现,如果用creation-zy的方法,已经回到了以数据为中心的方式,根本不可取。
 

Similar threads

后退
顶部