相关疑难解决方法(0)

在使用单一责任原则时,您如何确定"责任"应该是多么粗糙或细粒度?

在SRP中,"责任"通常被描述为"改变的理由",因此每个类(或对象?)应该只有一个人应该去那里并改变它的原因.

但是,如果你把它变成极端细粒度,你可以说一个对象将两个数字加在一起是一个责任,也是一个可能的改变原因.因此,对象不应包含其他逻辑,因为它会产生另一个改变的原因.

我很好奇是否有人有任何"范围"策略,单一责任原则稍微不那么客观?

oop single-responsibility-principle solid-principles

23
推荐指数
1
解决办法
1645
查看次数

面向对象设计中的方法

Q1.在我的大学对面向对象建模和设计的研究中,他们建议考虑对象可以为其方法做什么,以及它对其属性的责任.所有澄清的尝试都导致了进一步的混乱.

这往往会生成一个类图,其中包含具有所有操作的actor,以及仅包含数据的内部类.

这似乎不正确.还有另一种思考如何建模对象的方法吗?

Q2.此外,该课程似乎强调在真实世界对应物之后对物体进行建模,但在域模型中并不一定有意义.IE浏览器.在医疗实践中,他们有,Patient: CreateAppointment(), CancelAppointment()但不是如何实施(你会修改约会集合).还有另一种思考方式吗?

示例Q1

秘书:RecordAppointment(),RecordAppointmentCancellation()

预约:时间,日期,...(没有方法)

例Q2

医生:SeePatient()

虽然SeePatient是一个用例,但它对实际类的方法没有意义.你觉得这个怎么样?

oop class-design analysis

9
推荐指数
1
解决办法
1703
查看次数

如果您使用Inversion of Control,构造函数的大小是否重要?

所以我有10个对象,每个对象有1-3个依赖项(我认为就松散耦合而言是可行的),还有一些可用于定义行为的设置(超时,窗口大小等).

在我开始使用Inversion of Control容器之前,我会创建一个工厂,甚至可能为每个需要多于1个设置的对象创建一个简单的ObjectSettings对象,以将构造函数的大小保持为建议的"小于4"参数尺寸.我现在正在使用控制容器的反转,我只是没有看到它的重点.当然,我可能会得到一个带有7个参数的构造函数,但是谁在乎呢?无论如何,这一切都被IoC填补了.

我在这里遗漏了什么或这基本上是正确的吗?

inversion-of-control

4
推荐指数
1
解决办法
348
查看次数