Java扩展vs对象引用?

时间:2014-03-08 03:37:14

标签: java android class extend

我正在开发一个Android应用程序,我有一个用户类,其中包含有关用户的属性。我还有一个具有视图(即TextViews)的类,它在屏幕上显示相应的属性,这些属性用于GUI。这个GUI类需要用户类的属性,所以我也可以访问它们。所以我决定让我不确定。我想选择一个在编程实践中更好的那个。我不想将包括GUI在内的所有属性合并到一个类中。

我看到它的方式是,我可以让GUI类扩展用户类,或者让GUI类具有保存用户对象的私有全局变量。

有谁知道哪个更好,为什么?

2 个答案:

答案 0 :(得分:3)

使用encapsulation会更好。对于扩展“用户”类的GUI类没有任何意义 - 这两者不具有任何"is-a"关系。然而,确实对于GUI类来说是有意义的,以维护用户对象的工作。

换句话说,说GUI对象用户对象是没有意义的,但是说GUI对象包含用户a是有意义的用户对象。

最后,您通常希望将前端和后端尽可能保持独立和模块化。让你的GUI类扩展你的用户类会破坏这个原则。

答案 1 :(得分:0)

根据MVC architecture(Android使用的),我认为您没有选择任何良好的编程习惯。

既没有GUI类(UI层的一部分)扩展User class(模型层的一部分),也没有在GUI类中引用User是一个好主意(恕我直言)。模型和用户界面之间的互动应委托给您ControllerActivity

作为旁注,还有其他语言,例如Objective-C您可以使用Category。使用类别,您可以装饰UI类来执行此类操作,而不会违反体系结构。