Java 设计模式-策略模式(Strategy Pattern)

package com.strategy;

public interface SendStrategy {
	public boolean send(Message msg);
}
package com.strategy;

public class OnceADay implements SendStrategy{

	@Override
	public boolean send(Message msg) {
		System.out.println("每天一次");  
		return false;
	}

}
package com.strategy;

public class OnceAweek implements SendStrategy{

	@Override
	public boolean send(Message msg) {
		System.out.println("每周一次");  
		return false;
	}

}
package com.strategy;

public class SmsSender {

	private SendStrategy sendStrategy;
	
	public SmsSender(SendStrategy sendStrategy){
		super();
		this.sendStrategy = sendStrategy;
	}
	
	/**
	 * 发送信息
	 * @param message
	 */
	public void sendSMS(Message message){
		sendStrategy.send(message);
	}
}
package com.strategy;

public class Message {

}
package com.strategy;

/**
 * 客户端 调用
 * @author xinjiatao
 *
 */
public class Clinet {

	public static void main(String[] args) {
		new SmsSender(new OnceADay()).sendSMS(new Message());
		new SmsSender(new OnceAweek()).sendSMS(new Message());

		new SmsSender(new SendStrategy() {

			public boolean send(Message msg) {
				System.out.println("一天两次");
				return true;
			}
		}).sendSMS(new Message());
	}
}

猜你喜欢

转载自xinjiatao.iteye.com/blog/2215938