我有一个具有多个属性的类。其中有一个是可选的,仅在特定条件下适用。为了避免出现许多 null 属性,您可以分离类中的可选属性。那么,只有可选属性的类是弱类还是普通类?显然,从类中分离属性不会将该属性标记为可选,而是将新类与旧类连接起来的多重性。重数 (1,1) 和 (0,1)
首先让我声明,UML 本身并没有定义弱类之类的东西。所以从 UML 角度来看,这是一个普通的类。
现在,当谈到实现时,依赖者将是一个弱势阶层。
现在,在应用这种方法之前,您应该问自己是否真的从该设计中受益。是的,您可能没有很多空值(但是它们有什么问题?),但是每当您需要该附加属性时,您就需要连接表/创建子结构。
最终决定权在建筑师手中。我想说,最初的设计应该只显示可选性和条件,然后使用可选属性与空类的实际决定取决于其他因素,而不仅仅是许多空值的事实。这必须针对每种情况单独权衡,但是我想说,在构建弱类而不是允许这些空值受益的情况下,很少有情况。