-OOP限定-プログラム設計相談室
■ このスレッドは過去ログ倉庫に格納されています
0043デフォルトの名無しさん
2005/12/03(土) 21:15:04public abstract class AbstractStrategyFactory {
public abstract MessageStrategy createStrategy(MessageBody mb);
}
public class MessageBody {
Object payload;
public Object getPayload() { return payload; }
public void configure(Object obj) { payload = obj; }
public void send(MessageStrategy ms) { ms.sendMessage(); }
}
public class DefaultFactory extends AbstractStrategyFactory {
private DefaultFactory() {;}
static DefaultFactory instance = new DefaultFactory();
public static AbstractStrategyFactory getInstance() { return instance; }
public MessageStrategy createStrategy(final MessageBody mb) {
return new MessageStrategy() {
MessageBody body = mb;
public void sendMessage() { Object obj = body.getPayload(); System.out.println((String)obj); }
};
}
}
public class HelloWorld {
public static void main(String[] args) {
MessageBody mb = new MessageBody();
mb.configure("Hello World!");
AbstractStrategyFactory asf = DefaultFactory.getInstance();
MessageStrategy strategy = asf.createStrategy(mb);
mb.send(strategy);
}
}
■ このスレッドは過去ログ倉庫に格納されています