1
2
您不需要实现所有的getter/setter,您可以使用\uuuget()和\uuuu set()。那有什么问题? |
2
2
使用值对象,可以消除一些公共setter方法。下面是对 the difference between Entity and Value Objects . 值对象是不可变的,并且通常绑定到实体。如果使用构造函数传递所有值,则不需要从外部代码设置这些属性。
Fowler's interpretation of a Repository 可能会说不。但是,Eric Evans说DDD存储库可以非常简单。最简单的说,就是一个存储库 是 数据映射器(参见DDD手册)。有关更复杂且仍然是DDD的内容,请参阅Fowler文章。DDD有一个可能与模式定义不同的概念存储库。
|
3
1
从我对这篇文章的阅读来看,这个问题更具哲理性,而非实用性。 我没有时间深入写,但这是我的两分钱。虽然我同意您希望限制get和set请求的数量,因为类应该隐藏其内部,但您还需要考虑到Java和PHP是不同的工具,具有不同的用途。在web环境中,每个请求都会生成和删除您的类,因此您编写的代码不应该依赖于大型类。在文章中,您指出作者建议将视图逻辑放在类中。这在web上可能没有意义,因为我可能希望以多种格式(rss、html等)呈现视图。因此,使用访问器方法(get&set)是一个必要的缺点。你还是要深思熟虑地使用它们,这样你就不会射中自己的脚。关键是让你的班级为你做工作,而不是强迫他们在外部做工作。通过使用方法而不是直接访问属性,可以隐藏所需的内部内容。 同样,这篇文章可以举一些例子,但我现在没有时间。
|
4
1
“告诉-不要问”要求对象外部化的唯一方式是从对象本身。换句话说,要渲染对象,您将有一个渲染方法,但该渲染方法需要与接口对话。 大概是这样的:
在Zend Framework的上下文中,您可以将Zend_视图子类化,并让您的子类实现此接口。
第二个选项是将域模型转换为ViewModel对象,它类似于数据的简化、平展、“串列”视图,针对每个特定视图进行自定义(每个视图一个ViewModel),在返回时,将POST数据转换为EditModel。
|
5
0
在我看来,实现getter和setter有两个优点:
|
JBlake · 唯一验证基于datetime属性的存在,而不是值? 6 年前 |
Serge · Yii-查找具有零相关记录的记录 6 年前 |
waynard · Rails 5左外连接与WHERE查询相结合 6 年前 |
OKMantis · Ruby on Rails中的交叉引用表 6 年前 |
Grey · 访问不同子控制器中的不同关系 6 年前 |