ios - 一个类应该在内部处理它自己的数据吗?

标签 ios model-view-controller

我有一个 Flight 类,它目前除了保存大量包含给定商业航类详细信息的变量外什么都不做。

这些细节中的大部分只是通过构造函数传递,但其中一些需要计算或格式化。例如,我将航类到达时间格式化为字符串 "6th June",有时初始航类数据中缺少机场名称,因此我使用了一个 airportcodes 数组和 airportnames 来查找机场名称。

计算这些附加信息的方法应该位于飞行类或一系列其他模型(例如 DateProcessorAirport)中吗?

最佳答案

Chris K 正确地指出了试金石,即何时需要做出改变;您需要在多少地方进行更改。

OOP 概念鼓励解耦和 modular programming最大化代码重用。

关键是高内聚低耦合。引用这个Cohesion & Coupling

If you thing that the additional flight details that you are deriving from Flight class variables will only the need in one activity and now where else.Then its ok to have these functions in our activity.

But, if these functions may be required by other Activities or classes currently or may require in future.Then, place these functions in your Flight Class

理想情况下,最好的 OOP 是将这些从飞行类本身的飞行类变量派生细节的函数保留下来。因为,如果不是现在,您将能够重新使用代码,以后再使用。我也会建议相同。

此外,如果您使用 Flight 类的多个实例,您应该将所有访问和修改类变量的函数放在 Flight 类中,以保持每个实例的数据一致性。

如果您坚持使用 OOP 编程技术,那么维护代码会更容易,因为代码重用会更多并且没有重复代码。

面向对象编程有四大原则:

  • 数据抽象

  • 封装

  • 继承

  • 多态性

P.S : 可以引用http://en.wikipedia.org/wiki/Object-oriented_programming

关于ios - 一个类应该在内部处理它自己的数据吗?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/24695464/

相关文章:

c# - 为什么这条路线不能正常工作?

asp.net-mvc - MVC 中的页面渲染时间

ios - 在 iOS 中,动画 View 在手动调用 segue 后返回到其原始状态

ios - iPhone 6 和 6 Plus 响应断点

iOS 和直播 mjpeg

c# - HTTP post 上的 MVC 模型子对象为 null

c# - 如何在不调用 Controller 的情况下刷新 MVC webgrid

java - MVC View 和 Controller 通信的实现。 ( java )

iphone - 从 JSON 数组中提取 MKAnnotation 字幕

ios - 核心数据更改处理时出错