模式版Hello World
模式版Hello World
方绍伟 发表于4年前
模式版Hello World
  • 发表于 4年前
  • 阅读 10
  • 收藏 0
  • 点赞 0
  • 评论 0

腾讯云 新注册用户 域名抢购1元起>>>   

package main;

import bean.MessageBody;
import Factory.AbstractStrategyFactory;
import Factory.impl.DefaultStrategyFactory;
import Strategy.MessageStrategy;

public class HelloWorld {
	public static void main(String... args){
		
		MessageBody mBody = new MessageBody();
		mBody.configure("Hello world");
		
		AbstractStrategyFactory factory = DefaultStrategyFactory.getInstance();
		MessageStrategy mStrategy = factory.createStrategy(mBody);
		
		mBody.send(mStrategy);
	}
}
package Factory;

import bean.MessageBody;
import Strategy.MessageStrategy;

public abstract class AbstractStrategyFactory {
	public abstract MessageStrategy createStrategy(MessageBody mb);
}
package Factory.impl;

import Factory.AbstractStrategyFactory;
import Strategy.MessageStrategy;
import bean.MessageBody;

public class DefaultStrategyFactory extends AbstractStrategyFactory {
	
	private static DefaultStrategyFactory instance = null;
	
	public static AbstractStrategyFactory getInstance(){
		if(instance == null){
			instance = new DefaultStrategyFactory();
		}
		return instance;
	}

	@Override
	public MessageStrategy createStrategy(final MessageBody mb) {
		
		return new MessageStrategy(){

			MessageBody mBody = mb;
			@Override
			public void sendMessage() {
				System.out.println(mBody.getMessage());
			}
			
		};
	}

}
package Strategy;

public interface MessageStrategy {
	public void sendMessage();
}
package bean; import Strategy.MessageStrategy; public class MessageBody { private String message; public String getMessage() { return message; } public void configure(String message) { this.message = message; } public void send(MessageStrategy ms){ ms.sendMessage(); } } 

 这是Jason Tiscoini写的,讽刺过分设计的代码。学习并记录一下。




共有 人打赏支持
粉丝 7
博文 60
码字总数 1947
×
方绍伟
如果觉得我的文章对您有用,请随意打赏。您的支持将鼓励我继续创作!
* 金额(元)
¥1 ¥5 ¥10 ¥20 其他金额
打赏人
留言
* 支付类型
微信扫码支付
打赏金额:
已支付成功
打赏金额: