awp001

posts(5) comments(21) trackbacks(0)
  • BlogJava
  • 联系
  • RSS 2.0 Feed 聚合
  • 管理

常用链接

  • 我的随笔
  • 我的评论
  • 我的参与
  • 最新评论

留言簿

  • 给我留言
  • 查看公开留言
  • 查看私人留言

随笔分类

  • GIS(1)
  • Hibernate(2)
  • JDK(1)
  • 设计模式(1)

随笔档案

  • 2010年6月 (1)
  • 2009年10月 (1)
  • 2007年5月 (3)

搜索

  •  

最新评论

  • 1. re: TileCache安装与配置全程攻略
  • 评论内容较长,点击标题查看
  • --刘良亮
  • 2. re: 关于Java缺乏多继承机制的探讨[未登录]
  • 中间再加一层抽象类……
  • --迷你狐
  • 3. re: 关于Java缺乏多继承机制的探讨
  • 评论内容较长,点击标题查看
  • --隔叶黄莺-2
  • 4. re: 关于Java缺乏多继承机制的探讨
  • 评论内容较长,点击标题查看
  • --Robin's Java World
  • 5. re: 关于Java缺乏多继承机制的探讨
  • C/S客户端可以直接调用service层、传递VO对象(其实就是ActionForm)
    为何还要再写个MyClassForm
  • --ekdd

阅读排行榜

评论排行榜

View Post

关于Java缺乏多继承机制的探讨

 

最近笔者在软件产品研发过程中遇到一问题,解决起来相当的棘手。产品架构在规划阶段定位分布式多层架构,第一阶段采用B/S架构,同时研发出全部的服务端组件(Servlet和Java beans),在组件成熟并且B/S架构产品成熟的情况下,再研发C/S架构产品,这样一来,风险就大大降低了。

在B/S架构产品研发的时候,使用了Struts框架,其中的两大基础对象是ActionForm和Action。自定义的ActionForm都要继承自org.apache.struts.action.ActionForm,例如:

Public class MyClassForm extends org.apache.struts.action.ActionForm {
    Private String a;
    Private String b;
    ……
    
//getter 和 setter省略
}

 

这在B/S产品研发阶段没有任何问题,但是到了C/S产品研发阶段,问题就来了,客户端提交给服务器的数据不再是ActionForm,而是只包含字段的纯JavaBean,代码如下:

Public class MyClass {
    Private String a;
    Private String b;
    ……
    
//getter 和 setter省略
}



 

于是乎,在原来的B/S架构研发成果上,对于C/S架构产品的研发,都多了这个纯JavaBean的封装,如果业务逻辑发生变化,要对MyClassForm和MyClass都进行修改。

如果Java能支持多继承,那么就很省事情了。即自定义的MyClassForm能同时从org.apache.struts.action.ActionForm和MyClass继承:

Public class MyClassForm extends MyClass,org.apache.struts.action.ActionForm {
}




    可惜啊,JDK不支持多继承。

posted on 2010-06-02 11:49 awp001 阅读(2062) 评论(10)  编辑  收藏 所属分类: JDK

View Comments

# re: 关于Java缺乏多继承机制的探讨  回复  更多评论   
如果实现了多继承,多个父类之间的冲突如何处理?
2010-06-02 12:40 | 临远
# re: 关于Java缺乏多继承机制的探讨  回复  更多评论   
用 Struts 2 会好点, 好歹是POJO架构.
2010-06-02 13:33 | BeanSoft
# re: 关于Java缺乏多继承机制的探讨[未登录]  回复  更多评论   
组合+委托
2010-06-02 13:43 | dennis
# re: 关于Java缺乏多继承机制的探讨  回复  更多评论   
b/s c/s都可以使用MyClassForm 来作为客户端提交给服务器的数据,完全一样啊?你加个MyClass何用?
2010-06-02 14:19 | 咖啡妆
# re: 关于Java缺乏多继承机制的探讨[未登录]  回复  更多评论   
很多模式都可以,实在你要这样用SCALA
2010-06-02 15:37 | lee
# re: 关于Java缺乏多继承机制的探讨  回复  更多评论   
不管怎样,这是个好问题。。。哈哈!
2010-06-02 16:07 | anniezheng
# re: 关于Java缺乏多继承机制的探讨  回复  更多评论   
C/S客户端可以直接调用service层、传递VO对象(其实就是ActionForm)
为何还要再写个MyClassForm
2010-06-02 17:16 | ekdd
# re: 关于Java缺乏多继承机制的探讨  回复  更多评论   
Public class MyClassForm extends MyClass
Public class MyClass extends org.apache.struts.action.ActionForm

这样不就OK了。
2010-06-04 11:44 | Robin's Java World
# re: 关于Java缺乏多继承机制的探讨  回复  更多评论   
要是加入了多重继承,相信你会有更多烦恼的。不管是在用 struts 1,设计的时候你同样是要考虑好分层的,VO 和 ActionForm 仍然是要分离的。当然 Struts2 更好的解决了这种问题。层次分好了,你增加更多的客户端类型更能准确的找到切入点。应该说还是当初设计的问题。
2010-06-07 00:10 | 隔叶黄莺-2
# re: 关于Java缺乏多继承机制的探讨[未登录]  回复  更多评论   
中间再加一层抽象类……
2010-06-09 15:12 | 迷你狐
新用户注册  刷新评论列表  

只有注册用户登录后才能发表评论。


网站导航:
博客园   IT新闻   Chat2DB   C++博客   博问  
 
 
Powered by:
BlogJava
Copyright © awp001