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行,将父类转化为子类,虽然不会出错,但总是与面象对象的编程方法相违背,上面的设计是不是出了问题?
//---------------------服务器端通用的方法--------------------------------
我想使用面象对象的方法设计一个通用的方法,达到:
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行,将父类转化为子类,虽然不会出错,但总是与面象对象的编程方法相违背,上面的设计是不是出了问题?
//---------------------服务器端通用的方法--------------------------------