很多人都知道这篇文章:more on getters and setters。我认为它描绘了吸气者/定居者的邪恶一面是令人信服的工作。我还通过尝试将现有项目(未完成)转换为没有getter/setter的代码来测试它。有效。代码可读性大大提高,代码更少,我甚至设法摆脱了我最初认为他们确实需要的getter/setter。除了一个地方。视图图层的'getters and setters是邪恶'失败吗?
将模型导入视图部分是我认为这种方法忽略了重点的地方。在文章中,作者使用构建器来导出模型。问题在于:对建筑师投入的内容与对于获得者所获得的内容的控制一样多。是的,它隐藏了实现,它在模型中的表现方式。但是吸气者并没有脱离那种与放在那里的东西截然不同的东西。如果您通过构造函数创建传递'5'的Money对象,则money.getAmount()不会将此转换为其他货币或具有一个元素'5'的数组。
你设定了什么。通过这个观点,我们设定了价值观,以及当我们从一个本应该保持我们首先设定的目标的对象那里得到(获得)的价值。一个建造者出口这些只是期望相同。
这个问题有点长。但我想对我的观点提出质疑。为了将模型数据传输到视图层,getter和setter是否是邪恶的?
有很多人认为getters/setters根本就不是邪恶的。这也不是我想要听到的辩护,因为我认为他们在除了我提到的那些地方以外的其他地方都是邪恶的。
你应该可以看到艾伦霍勒布的书http://www.amazon.com/Holub-Patterns-Learning-Design-Looking/dp/159059388X 他说很多吸气剂和安装者都是邪恶的,当他们可以接受时。他展示了很多实用工具,所以在这里写它们太多了。 – 2009-08-22 10:24:46
谢谢。将研究它。 – koen 2009-08-22 14:04:09