【发布时间】:2012-03-22 22:32:50
【问题描述】:
假设我有一些代码...
House = function () { /* constructor */ }
House.childPlay (childId) { ... }
House.childLearn (childId) { ... }
House.childEat (childId) { ... }
因此,隐含地,这个 House 对象“有”孩子,但它不一定有 Child 对象。这就是我想知道的。 childId 的不断传递似乎很可疑。 House 是否应该拥有一组 Child 对象?
House.Child.play () { ... }
House.Child.learn () { ... }
House.Child.eat () { ... }
我唯一担心的是,某些操作位于 House 和 Child 之间,就像它们互动一样。因此,子对象需要对父对象有某种认识。
House.Child.clean () {
self._cleaningStrategy( self.house._provideMop() );
}
我看到有一种称为参数对象的设计模式。是这个吗?我想如果我要传递一个元组的参数值,但这里我只传递一个。
【问题讨论】:
-
那么,您有什么顾虑?传递此 id 对您的代码有何影响?
-
一个同样有效的问题可能是“为什么房子不属于孩子?” ...但你还没有告诉我们为什么不能这样。猜猜是因为孩子没钱。
-
是的,不断传递相同的参数太冗长/笨拙,还有更好的方法。
-
@SanJacinto 没有什么能阻止孩子拥有房子。我只是还没有实现它,这正是我要问的。没有限制。
-
问题不可能回答。虚构的非代码相关示例很难讨论。真实的例子更有可能吸引真实的答案。
标签: oop design-patterns language-agnostic parameters refactoring