Java 我应该创建对象列表还是更改接口?
我有3个类实现以下接口:Java 我应该创建对象列表还是更改接口?,java,list,Java,List,我有3个类实现以下接口: public interface PolicyType { public boolean isValid(); public void displayTemplate(); } 我主要创建并初始化了每个类的一个实例: //the same method exists for MedicalPolicy and MotorPolicy private static void displaySucMsg(TravelPolicy travelPolicy,
public interface PolicyType {
public boolean isValid();
public void displayTemplate();
}
我主要创建并初始化了每个类的一个实例:
//the same method exists for MedicalPolicy and MotorPolicy
private static void displaySucMsg(TravelPolicy travelPolicy,List<TravelPolicy> travelPolicyList){
if(travelPolicy.isValid()) {
System.out.println("Policy: " + travelPolicy.getPolicyNo() + " was added successfully");
travelPolicyList.add(travelPolicy);
}
}
public static void main(String[] args){
List<TravelPolicy> travelPolicyList = new ArrayList<TravelPolicy>(2);
List<MotorPolicy> motorPolicyList = new ArrayList<MotorPolicy>(2);
List<MedicalPolicy> medicalPolicyList = new ArrayList<MedicalPolicy>(2);
TravelPolicy travelPolicy1 = new TravelPolicy(policyNo,param2,etc...);
displaySucMsg(travelPolicy1,travelPolicyList);
MotorPolicy motorPolicy = new MotorPolicy(policyNo,param2,etc...);
displaySucMsg(motorPolicy,motorPolicyList);
MedicalPolicy medicalPolicy = new MedicalPolicy(policyNo,param2,etc...);
displaySucMsg(medicalPolicy,medicalPolicyList);
}
//对于医疗政策和机动车辆政策也存在相同的方法
私有静态无效显示SUCMG(TravelPolicy TravelPolicy,List travelPolicyList){
if(travelPolicy.isValid()){
System.out.println(“策略:“+travelPolicy.getPolicyNo()+”已成功添加”);
travelPolicyList.add(travelPolicy);
}
}
公共静态void main(字符串[]args){
List travelPolicyList=new ArrayList(2);
List motorPolicyList=newarraylist(2);
List MedicalPolycylist=新ArrayList(2);
TravelPolicy travelPolicy1=新的TravelPolicy(保单号、参数2等);
displaySucMsg(travelPolicy1,travelPolicyList);
MotorPolicy MotorPolicy=新的MotorPolicy(保单编号、参数2等);
显示SUCMG(motorPolicy,motorPolicyList);
医疗政策医疗政策=新医疗政策(保单号、param2等);
显示SUCMG(医疗政策、医疗政策主义者);
}
正如您所看到的,我已经为一个类创建了3个列表
但我希望有1个列表
,这样最后我就可以对其使用for循环
,我的问题是displaySucMsg
对policyNo
字段使用getter方法(然后将实例添加到适当的列表)因此,我无法创建PolicyType
的列表
,并向其中添加所有实例
我的问题是,我应该为对象创建一个列表(我认为这是一种不好的做法),并将所有3个列表添加到该列表中,还是应该将公共字符串getPolicyNo()
添加到我的接口中,因为我的3个类都有该方法(我认为这也是一种糟糕的做法,因为如果我创建了一个实现PolicyType
但不需要getPolicyNo()
方法的新类,那将非常糟糕),或者我应该让代码保持原样,在每个列表上运行1for loop
,还是有其他解决方案?类设计应该反映真实的业务场景。那么定义什么是“策略”如果policyNo和policyType是重要的属性,那么永远不要担心它们是空的
如果某个属性被认为是强制性的,但随着业务场景的变化,它不再是强制性的,那么您可以始终实现它并返回默认值,或者在接口上实际有一个默认实现。您甚至可以引入两个接口-OldPolicy和NewPolicy,以适应定义的变化关于“政策”
在您的示例中,将getPolicyNo()
添加到接口PolicyType
,并构建一个可以容纳3种策略类型的对象的列表。如果所有PolicyType
类都有getter,则在此类策略(不含PolicyNo
)时将其添加到接口出现,以后再处理,通常这意味着模型没有正确定义。。。