当前位置: 首页 > 知识库问答 >
问题:

正确设计Java类

张嘉佑
2023-03-14

我的问题是我应该让沉孔(板中的凹陷孔)成为的属性还是应该让沉孔成为接头的属性

我有以下工程分析课程:

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

沉头孔仅适用于顶板,但我需要验证用户输入的板材厚度是否大于沉头孔的深度。我只是在底板中将沉头孔设置为null,还是将沉头孔属性放在关节类中更好?或者我应该使用其他模式,比如子类?

我将涂层和材料作为属性添加到每个零件中,因为它太过冗长,无法添加到接头中,例如:

  BoltedJoint
    Plate topPlate
    Plate bottomPlate    
    Coating topPlateTopSurface
    Coating topPlateBottomSurface
    Coating bottomPlateTopSurface ...etc 

我可能可以让它在任何一种情况下工作,但也许他们的设计更好?

共有2个答案

楚岳
2023-03-14

如果我正确理解上下文,CountBore联合对其topPlate的要求。在这种情况下,它应该是联合的属性(可能取自Bolt或任何指定它的内容),如果topPlate没有足够的厚度,联合应该拒绝它。

如果沉孔的物理属性(即实际上有一个钻孔沉孔),那么它也应该是的属性。但接头仍将其作为其顶部的要求。

希望这有意义。

佴涵蓄
2023-03-14

我认为,如果将沉头作为接头的属性,那么螺栓都可以访问每个接头的特定属性。这样,Bolt就不需要访问Plate对象来查找孔。

 类似资料:
  • 我必须给出使用Site Minder的SSO架构的建议。我们几乎没有J2EE应用程序。这些J2EE应用程序设计为在SSO提供者进行身份验证后,当http头包含信息时工作。我们一直保持应用程序SSO提供程序不可知。这意味着我们只依赖SSO提供程序的头。这在RSA作为SSO提供程序的情况下运行良好。 现在SiteMinder提出了另一种架构。请求的流动方式是 带IIS的SiteMinder- 要崩溃,

  • 在制作后端服务器之前,我正在设计Restful API。这项服务是小型Instagram,我想知道我的restful设计是否符合REST原则。 认证 创建帐户:POST /auth/user 删除帐户:删除 /auth/user 登录:发布 /auth/session 注销:删除 /auth/session 邮政 < li >加载摘要:获取/发布 < li >创建帖子:帖子/帖子 < li >读取

  • 我正试图在我的Fedora 22上安装MATLAB。最后,我得到一个错误 应用程序遇到意外错误,需要关闭。您可能需要尝试重新安装产品。更多信息可以在 /tmp/mathworks_root.log找到 当我查看mathworks_root.log文件时,我发现在安装步骤中未正确设置Java Home Java Home /tmp/mathworks_32206/sys/java/jre/glnxa

  • 问题内容: 例如,我有实体类: 接下来,我添加新的实体类: 接下来,我可以添加越来越多的实体类。 而且,此刻我想:我可以/必须以逻辑结构绑定/连接我的实体类,还是没有? 我的意思是说?我尝试解释一下: 要点1:所有这些类:,以及其他- 。 想法1:需要通过接口或抽象类对此类进行逻辑绑定。 第2点:我看到,所有实体类都有相同的方法:和。 想法2:需要避免在所有类中声明此方法。 我的解决方案: 添加界

  • Imma java新手,所以我试着学东西。我创建了一个布尔方法,这是一个小的骰子游戏。我需要这个方法是从main方法调用,并继续玩,而返回值是真的(游戏是赢的),但停止执行,如果返回值是假的。我也需要多少次球员赢了。所以我创造了这样的东西: 初始化为私有静态int

  • 问题内容: 我已经浏览了一些有关如何以及为何akka无法保证消息传递的帖子。该文档,这个讨论和小组其他讨论做解释它做好。 我对akka来说还很陌生,希望了解适合表壳的设计。例如说我有3个不同的角色,都在不同的机器上。一个负责食谱,另一个负责历史,最后一个负责技术书籍。 我在另一台机器上有个主要演员。假设对主角有一个查询,以搜索是否有可用的书。主参与者将请求发送到3个远程参与者,并期望结果。所以我这