让我们说我有一个用户类,我想返回我的数据库中的所有用户。为此,我创建了一个名为getAll()的方法;同样的方法,多种返回类型。代码组织
我需要在应用程序的不同部分调用该方法,并以不同格式返回数据。例如,我可能需要以逗号分隔的所有用户放入一些“where in”条件,或以json格式放置api或数组。
什么是组织我的代码的最佳解决方案?
可能的解决方案: 1.为getAll函数传递一个fetchMode变量,以便我可以相应地设置返回值的格式。 2.创建一个代理方法“findAllAsArray”,“findAllAsJson”等,它调用原始的getAll方法并设置响应的格式。 3. Allways以标准格式(例如:array)返回结果,然后创建一些通用方法在格式之间进行转换:ex:arrayToJson,arrayToCsv等,并在需要除标准以外的其他格式的结果时使用它们。
如果我有很多需要的格式,方法1可能会使getAll方法太复杂。 方法2可能会添加太多的额外方法,导致我的类更复杂。 方法3,不知道,但应该从我认为的模型中以需要的格式返回数据。在控制器中转换它可能不是最好的解决方案。
“控制器”。你是否在Ruby on Rails这样的框架中工作?我问,因为你的特定框架可能有内置的机制或惯例来处理这个问题。 –