csg*_*gui 3 java setter instanceof
我面对以下代码:
public class BaseGroup {
private Group1 group1;
private Group2 group2;
private Group3 group3;
public void setGroup (IGroup group) {
if(group instanceof Group1) {
setGroup1((Group1) group);
} else if(group instanceof Group2) {
setGroup2((Group2) group);
} else {
setGroup3((Group3) group);
}
}
public Group1 getGroup1() {
return group1;
}
public void setGroup1(Group1 group1) {
this.group1 = group1;
}
public Group2 getGroup2() {
return group2;
}
public void setGroup2(Group2 group1) {
this.group2 = group2;
}
public Group3 getGroup3() {
return group3;
}
public void setGroup3(Group3 group1) {
this.group3 = group3;
}
}
Run Code Online (Sandbox Code Playgroud)
并且BaseGroup类以这种方式使用.
BaseGroup baseGroup = New BaseGroup();
basegroup.setGroup(group);
Run Code Online (Sandbox Code Playgroud)
我的问题是关于这个"instanceof"的链调用相应的setter来组装BaseGroup对象.这样做的最佳方法是什么?
您可以添加方法
interface IGroup {
public void addToGroup(BaseGroup bg);
}
class Group1 implements IGroup {
public void addToGroup(BaseGroup bg) { bg.setGroup1(this); }
}
// etc for Group2 and 3.
IGroup group;
BaseGroup bg;
group.addToGroup(bg);
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
398 次 |
| 最近记录: |