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

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

mycwcgr_new

Unregistered / Unconfirmed
GUEST, unregistred user!
Java 中 我想使用面象对象的方法设计一个的方法,达到:
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行,将父类转化为子类,虽然不会出错,但总是与面象对象的编程方法相违背,上面的设计是不是出了问题?
//---------------------服务器端通用的方法--------------------------------
 
Java 中 我想使用面象对象的方法设计一个的方法,达到:
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行,将父类转化为子类,虽然不会出错,但总是与面象对象的编程方法相违背,上面的设计是不是出了问题?
//---------------------服务器端通用的方法--------------------------------
 
两个程序(服务器和客户端)可以直传传递对象嘛。应该不行吧。
 
在同一进程来传递对象是可以,java里的对象应该和delphi里一样
send_to_server(data_base mydata_base);这样mydata_base只是一个指针可能。你把这个传递到服务端。服务端并没有这个对象实例存在。
你可以将mydata_base的数据打包然后传递到服务端,服务端收到数据解压再重新生成对象。
对java不熟,呵呵,乱谈谈
 
接受答案了.
 
顶部