|
|
1
16
在这种情况下,我会选择组合而不是继承。如果你坚持继承,每次升职或降职,每次雇佣联系人或员工离职并成为正式联系人时,你都会换班。
|
|
|
2
5
然而,在我看来,你应该有这样的东西:
在某种工作流过程中。 关于NHibernate,听起来你是在将ORM逻辑与业务域混合在一起。将员工晋升为经理是一个业务领域结构,因此属于您的业务模型。然而,NHibernate如何将你的员工和经理映射到你的数据库中,除了如何映射他们之外,与你的商业模式无关。不过,这绝对与如何将员工晋升为经理无关。 |
|
|
3
2
|
|
4
2
|
|
|
5
0
你好,
我的直觉是,你错误地表示了一个Manager对象。 回到基础,从面向对象的角度思考,你的基类(Contact)包含Employee和Manager对象的公共元素。任何派生对象都只是基类的特殊化。
目前我能看到的唯一区别是,Manager对象现在有一组Employee对象,这些对象是它们自己的directReports。这可能应该实现为指向Employee对象容器的指针。 我想不出任何需要将Employee对象与Manager对象分离的行为专业化。 嗯,也许可以创建包含联系人详细信息的基类Person。 编辑: 对不起,从你的评论来看,我想我不够清楚。我所描述的不会导致两个单独的类都直接从您的Contact类派生出来,因此您必须在运行时将Employee的实例更改为Manager,这是您最初的问题。
有两个派生类,一个Manager和一个Employee,在我看来是完全错误的。你试过用“isa”和“has a”的关系来分解事情吗。然后你可以看到你的基本结构是错误的。
希望这能帮到你
|
|
|
6
0
员工在角色中(M-M关系)许多员工扮演许多角色
|
|
|
Nico Pizzo · 子查询上的nhibernate联接 8 年前 |
|
|
YMC · 无法在Nhb 4中构建只有特定字段可供选择的2个表联接 8 年前 |
|
|
Stu · 具有特定类型的字符串外键的NHibernate映射 8 年前 |
|
|
Zout · 为Hibernate的HiLo算法管理的列生成ID 8 年前 |