62,621
社区成员
发帖
与我相关
我的任务
分享public enum RepeatMode {
NOREPEAT {
@Override
public RepeatMode next() {
return SINGLE;
}
@Override
public String getDescription() {
return "不循环";
}
},SINGLE {
@Override
public RepeatMode next() {
return REPEAT;
}
@Override
public String getDescription() {
return "单曲循环";
}
},REPEAT {
@Override
public RepeatMode next() {
return NOREPEAT;
}
@Override
public String getDescription() {
return "循环";
}
};
public int getKey() {
return ordinal();
}
public abstract RepeatMode next();
public abstract String getDescription();
}
public enum WeekDay
{
SUN,MON,TUES,WED,THUR,FIR,SAT;
}IVisitor {
void visitState1();
void visitState2();
}
enum StateEnum {
State1 {
public void accept(IVisitor visitor) {
visitor.visitState1();
}
},
State2 {
public void accept(IVisitor visitor) {
visitor.visitState2();
}
}
public abstract void accpet(IVisitor visitor);
}
class MyVisitor implements Visitor {
@Override
void visitState1() {
// do something
}
@Override
void visitState2() {
// do something
}
}
class SomeClass {
StateEnum state;
void someMethod() {
state.accept (myVisitor1);
}
}enum Singleton {
INSTANCE;
private int field1;
private int field2;
public Singleton () {
// constructor
field1 = 8;
}
public getField1() {
return field1;
}
public setField2(int val) {
field2 = val;
}
}
enum是C语言中error code的完美替代品
在Visitor Pattern中可以使用enum作为acceptor:
IVisitor {
void visitState1();
void visitState2();
}
enum StateEnum {
State1 {
public void accept(IVisitor visitor) {
visitor.visitState1();
}
},
State2 {
public void accept(IVisitor visitor) {
visitor.visitState2();
}
}
public abstract void accpet(IVisitor visitor);
}
class MyVisitor implements Visitor {
@Override
void visitState1() {
}
class SomeClass {
StateEnum state;
void someMethod() {
state.accept (myVisitor1);
}
}