以下是我的情景:
我有一个具有10个属性的对象(例如姓名,生日等)。我在我的jsf web应用程序中的两个单独的页面上使用该对象。在一个页面上,我将只使用5个属性,另一个页面我将可能使用全部10.构建对象的最佳实践/最有效方法是什么?我只有一个物体吗?第一页是否有一个对象,另一个是第一个对象的第二个对象?或者我是否为每个页面都有一个对象来扩展基础对象?
答案 0 :(得分:1)
我不会太沉迷于这些属性,我会更多地考虑这个课程。
这个类代表了原子的东西,对吗?听起来像是一个人。
事实上,在某些情况下,你只使用了一些属性,那又是什么?
拥有HalfAPerson课程是没有意义的!
所以对我而言,关键在于你的班级的“原子性”。如果if描述了一个合乎逻辑的东西,那么为什么要进一步分裂呢?
答案 1 :(得分:0)
我接触这个问题的方式如下:
package com.model
public class MyClass
{
//all 10 properties with getters and setters
}
为ui支持类分隔包
package com.ui.backing
public class FiveProperties
{
private MyClass myClass;
//use the 5 properties here
}
public class TenProperties
{
private MyClass myClass;
//use the 10 properties here
}
这样做的好处是应用程序中的每个页面都由您需要的一组特定属性提供支持。它还使页面具有特定的逻辑,而不是在任何地方复制代码。
答案 2 :(得分:0)
作为所有面向对象代码的一般规则:
如果A类在各方面都像B类,但有一些额外的位; A类应该扩展B类
如果A类和B类相似但两者都没有完全相互封装,那么它们都应该扩展一些基类。
我认为你处于第一种情况
答案 3 :(得分:0)
理想情况下,如果页面不同,您应该使用两个不同的类,因为将来您可能不再具有任何共同属性。
话虽如此,如果您使用公共数据跨页面(也可能将其存储在会话中)使用它,那么我建议您使用单个对象并在页面上使用适当数量的属性。 这是假设两个页面上的那些常见值相同。