【发布时间】:2012-04-04 09:54:29
【问题描述】:
我有一个名为 Receipt 的 Android 类,它以零售环境中的典型 Receipt 为模型,包括以下类变量:
receipt_number
date_ordered
date_paid
item_quantity
item_type
item_sku
item_price
total_price
customer_id
customer_name
clerk_id
clerk_name
哇...有很多。我刚刚习惯了 OOP,虽然我喜欢使用 Receipt 数据类来存储 Receipt 的属性的想法,但我担心我使用对象只是为了使用对象而不是适当地使用数据类。
为什么?好吧,我在另一个类中有另一个方法,我将我的 Receipt 对象提供给它。一旦馈送到这个其他类,收据数据用于填写允许用户编辑所述收据的视图(来自收据的数据填写可以更改的 EditText 框,然后保存)。问题是更新收据的代码变得荒谬。我在 Receipt 中为上面的几乎每个变量(例如 setClerkId()、setCustomerName()、setItemSku() 等)提供了一个辅助方法,当我更新 Receipt 时,我发现自己调用了所有这些方法并且它正在转向进入一个巨大的老鼠窝。
我肯定错过了这里的船,而且可能是远射。必须有一种更理智的方法来输入我的新收据的所有值(它实际上是对旧对象的更新),而无需使用辅助方法手动更新每个变量?如果这是正确的做法,我想我会有点惊讶(不,非常惊讶)。
我们将不胜感激任何朝着正确方向的推动!
谢谢!
【问题讨论】:
-
一个好的开始可能是识别收据实际代表的单独对象 - 项目、客户、店员,并考虑分别对它们进行建模(例如,店员多久更换一次? 为什么每次都重新输入?)。对象应该主要关注单个项目(理想情况下是单个职责)。
-
啊哈,所以我定义我的对象太笼统了,你相信吗?我认为您肯定走在正确的轨道上,因为是的,各种项目永远不会改变,因此也许它们毕竟应该是单独的对象。现在我正在以完全不同的方式看待我的应用程序。
-
我发现处理来自 SQLite 数据库的对象的最佳方法如下:stackoverflow.com/questions/1122679/…
标签: android oop class variables object