我可以使用MVC没有getter和setter方法?(Can I use mvc without g

2019-09-20 23:01发布

如果我不想暴露我对象的状态,但我仍然需要显示它(在HTML,XML或JSON让我们说),我怎么会去这样做,在一个MVC环境。 是否有意义有其导出一个简单化了不可变对象(“数据类”如果你愿意)的导出方法。 怎么样在渲染方法进行对话的界面加入? 是否有任何其他办法解决这个问题?

Answer 1:

渲染方法来最接近不暴露状态。 另一种方法(公知的给Smarty用户)是喂视图非对象的数据结构的工作。

值得探讨的是,虽然,这是什么问题,这些抽象和/或隐藏他们所服务的解决界面? 如果你打算做这一切工作,海事组织你应该确保有一些它的节约你的工作。



Answer 2:

封装点是隐藏实现。 有“国家”,其他对象也需要了解-有时物体的整个目的是告诉这样的状态。

举例来说,这将是相当无用的具有不具有一个getter它是否是一个最终状态或没有定义的有限自动机对象。 但它肯定是有益的封装如何将信息存储在内部。

现在,getter和setter的目标是提供一个接口,一个对象,这可能没有什么关系它是如何实际实施的状态的性质 。 当然,大部分的时间,这些特性在对象字段,以及getter和setter只是扁壳。 在另一方面,你可以自由地改变内部实现,因为getter和setter方法将确保接口的兼容性。

但是,如果这些特性也涉及到实际执行,而不是这么多的对象有关,那么你应该考虑什么除去这样的getter和setter。

说了这么多,如果你需要的东西显示给用户,那么这是一个属性的其他对象需要了解。 的对象不应该是如何展示自己,原因是多方面的关注。 其中之一是,它可以不知道应该如何不知道它是如何使用的应用程序,这将使其知道太多关于其他对象进行渲染。



文章来源: Can I use mvc without getters and setters?