浏览:638 2008-05-23 09:21 来自 weblogical      :

医疗门户网站用户注册,用户分为3种,普通用户、医生|专家|医疗工作者、医院,他们各自的property是不同的,我准备用abstract class封装属性(name,……)、方法(Register(),EditResume(),……),然后三个类CommonUserClass、ExpertClass、HospitalClass分别继承这个抽象类,这种设计是否有缺陷?初学,请指点一下

收藏 楼主
  4个月前  willsun      :
工厂模式能满足你创建对象的需求,不过不知道你的object 怎么对应 database的
1楼 回到顶楼 
  4个月前  炭炭      :
这样有个缺陷,你把一些属性方法放到基类中会发现可能有的用户类型用不到,放到子类中,有可能几个子类都有这个属性,并且使用基类引用时,调用不到这些方法。
从响应变化的角度考虑,提炼出来一个基类并无太大意义。你使用基类的目的无非是想这样使用,假设基类是User :
foreach (User aUser in UserList)
aUser.Registe(); //whatever
关键是继承是很强的关系,对于C#,java这种单继承的语言就更不好了。
====
不如将Register(),EditResume(),根据功能的分类,封装为一些接口,使用CommonUser,ExpertUser,去实现这些接口就好了。基类没什么必要
2楼 回到顶楼 
  4个月前 【组长助理】 李.net      :
我到是觉得,做为一个WEB网站来说 ,注册用户类型,没有必要采用抽象方法来继承,感觉这样做反而把问题搞复杂了。
3楼 回到顶楼 
  4个月前  编程的夜猫      :
@炭炭
分析的相当好,非常受用,呵呵,
4楼 回到顶楼 
  1周前  pgpgli      :
5楼 回到顶楼 

注册用户登录后才能回复,登录注册
> 返回“设计模式”


其他话题

相关内容

相关链接

1 17574