最初,我有一个Plan
类,其行为如下:
class Plan {
public enum Type {
FOO
}
String checkFoo() {
// some check for foo
}
String doSomething() {
}
}
现在,我需要添加另一个名为Bar
的类型。
class Plan {
public enum Type {
FOO, BAR
}
String checkFoo() {
// some check for foo
}
String checkBar() {
// some check for bar
}
String doSomething() {
}
}
现在,checkFoo仅适用于Foo,但不适用于Bar,反之亦然。 如何构建这个最好的“设计模式”?我们应该在每个方法中添加检查并抛出异常吗?有共同的解决方案吗?
答案 0 :(得分:4)
这里的“常见解决方案”是多态。
在Java中, enum (几乎)是一个普通的类。因此,常量可以像这样实现接口:
members = document.querySelectorAll('.galleryItem');
function someFunc() {
console.log(this);
//add your function scripts here
}
members.forEach(member => {
member.addEventListener('click', someFunc)
});
在任何情况下,您的来电者都不应该处理有不同的interface Checkable{
String doCheck();
}
class Plan {
public enum Type implements Checkable{
FOO{
@Overide public String doheCheck() {
return "result of Foo check";
}
}, BAR{
@Overide public String doheCheck() {
return "result of Bar check";
}
};
}
String check() {
for(Checkable checkable: Type.values()){
checkable.doCheck();
}
String doSomething() {
}
}
来检查......
答案 1 :(得分:3)
如果我理解正确,你可以创建你的枚举有点不同:
enum Type {
FOO {
public String getMe(){
return "FOO";
}
};
// force every instance to implement this
public abstract String getMe();
}