我有一个下拉列表,向最终用户显示表中的值。我希望这些值按字母顺序排序。
根据正确的 MVC 设计,我应该将排序逻辑放置在哪一层:模型、视图还是控制器?
EDIT:在回答 LarsH 的问题“你的意思是确定所需排序顺序的代码?还是执行排序的代码?”,我最初指的是确定所需排序顺序的代码。
谁控制排序顺序?
(From Wikipedia http://en.wikipedia.org/wiki/Model%E2%80%93view%E2%80%93controller)
1) 数据本身的自然顺序:
该订单是模型的一部分,因此应该放在那里。 “所有数据”的原始拉取将按排序顺序返回数据,并且没有用于选择排序顺序的界面。
2)用户应该控制他们查看数据的方式:
视图将提供与控制器交互的接口(例如升序/降序箭头),并且模型足以很好地理解数据以对数据进行请求的排序。然而,与 (1) 不同,原始数据拉取不一定需要排序。
在任一情况下,
除了显示已选择的排序方向的能力之外,视图不了解正在进行排序。不要把逻辑放在那里。
小警告
排序功能could在一种情况下(我可以立即想到;可能还有更多),纯粹进入视图:
“哑”排序,其中所有数据都已在视图中,并且不必使用任何领域知识来进行排序。例如,非常简单的字符串或数字比较。例如,当结果可能跨多个页面时,在网页上的搜索结果中这是不可能的。
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)