Android如何有效地更改许多类变量? (也许我是在吹嘘OOP?)

时间:2012-03-19 21:27:12

标签: android oop class variables object

我有一个名为Receipt的Android类,它模拟了您在零售环境中获得的典型收据,并包含以下类变量:

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数据类来存储收据的属性,但我担心我只是为了使用对象而不是正确使用数据类而使用对象。

为什么呢?好吧,我在另一个Class中有另一个方法,我将Receipt对象提供给。一旦送到另一个类,收据数据用于填写一个允许用户编辑所述收据的视图(来自收据的数据填写EditText框,可以更改,然后保存)。问题是代码更新收据变得荒谬。几乎所有变量都在Receipt中有一个帮助方法(例如setClerkId(),setCustomerName(),setItemSku()等等)当我更新收据时,我发现自己调用了所有这些方法并且它正在转向进入一只巨大的老鼠窝。

当然,我在这里错过了这艘船,可能是一次远射。必须有一个更理智的方式来提供我的新收据的所有值(它实际上是旧对象的更新),而无需使用辅助方法手动更新每个变量?如果这是正确的做法,我想我会有点惊讶(不,很惊讶)。

非常感谢任何向正确方向的推动!

谢谢!

1 个答案:

答案 0 :(得分:0)

我猜你做得对。我有一个对象有很多命名属性,那么你将不得不做很多get / set。

如果您将所有内容全部放入单个(或多个)ArrayList<String> / String[]甚至其他对象中,则可以简化这些操作。无论您感觉如何,都能恰当地表达您的数据。

或者您使用HashMap代替您的课程并将其存储起来:

HashMap<String, String> hashmap = new HashMap<String, String>();
hashmap.put("receipt_number", value);
String value = hashmap.get("receipt_number");

这会产生一种更加动态的方式来存储价值。