【发布时间】:2012-06-15 21:09:00
【问题描述】:
我有一个需要设计的操作。该操作采用某个类 X 的两个对象,并返回同一类的两个新对象(我以后可能需要原始对象)。指示选择该对象的逻辑包含在 Y 类中。一方面,我不希望 Y 类知道有关 X 类实现的细节;另一方面,我不希望 X 类知道有关选择不同对象来执行此操作的详细信息。
如果这就是问题的全部,我只需在 A 类上创建一个静态方法。但是,我正在使用的语言中的方法只返回一个对象。此外,该操作需要稳健,不能两次调用操作分别获得 C 和 D,因为 C 和 D 都依赖于单个随机数。
我应该如何设计这样的操作?
更新:我正在使用 Obejctive C。
【问题讨论】:
-
如果您告诉我们您使用的语言可能会有所帮助
-
也许您可以创建一个 Mapper,获取 X 信息并将其转换为 Y 对象,让 Y 对象进行内部映射,然后将其转换回 X 对象。如果您不是更具体,我们无法真正帮助您。 :(
-
Objective C. @DonalFellows 不创建一个数组只是为了返回两个元素会太慢吗?
-
@golergka 此操作多久调用一次? “太慢”只在瓶颈中真正重要。您已经创建了两个堆对象,再分配 8-16 个字节不会有太大变化。
-
@millimoose 这是我正在编写的遗传编程工具中的交叉操作,所以我认为它会被调用很多并且很容易成为瓶颈。
标签: objective-c oop