我的问题是,我应该counterbore
(板中的凹孔)属性为plate
,还是counterbore
属于joint
的属性
我有以下课程用于工程分析程序:
Plate
Bolt
Washer
Nut
Material
Coating
然后我有代表各种关节的类
TappedJoint (a joint were the bolt is threaded into the bottom plate) will have:
Plate topPlate
Plate bottomPlate
Bolt bolt
Washer topWasher
BoltedJoint
Plate topPlate
Plate bottomPlate
Bolt bolt
Nut nut
Washer topWasher
Washer bottomWasher
沉头孔仅适用于topPlate
,但我需要进行验证,即用户输入的板厚大于沉头孔的深度。我是否只是在bottomPlate中将沉头孔设置为null,或者将沉头孔属性放在关节类中更好?或许我应该使用其他模式,如子类?
涂层和材料我作为属性添加到每个部分,因为添加到关节中会过于冗长,即:
BoltedJoint
Plate topPlate
Plate bottomPlate
Coating topPlateTopSurface
Coating topPlateBottomSurface
Coating bottomPlateTopSurface ...etc
我可以让它适用于任何一种情况,但也许它们是更好的设计?
答案 0 :(得分:0)
我认为如果您将counterbore
作为Joint
的属性,那么Plate
和Bolt
都可以访问特定于每个Joint
的属性。这样,Bolt无需访问Plate对象来查找孔。
答案 1 :(得分:0)
如果我正确理解了上下文,counterBore
是Joint
要求topPlate
的内容。在这种情况下,它应该是Joint
的属性(可能取自Bolt
或其他任何指示),Joint
如果不是topPlate
则拒绝counterBore
有足够的厚度。
如果Plate
是Plate
的物理属性(即Plate
实际上有一个钻孔的沉头孔),那么它也应该是Joint
的属性。但是topPlate
仍然会将其作为foo
的要求。
希望它有意义。