策略模式

package com.design.model.strategy.pattern;

public class Client {
	public static void main(String[] args) {

		CateProductLineUtil cateProductLineUtil = new CateProductLineUtil();
		GjTagManager gjTagManager = new GjTagManager();
		cateProductLineUtil.setTagManager(gjTagManager);
		System.err.println(cateProductLineUtil.getProductLIneByCate("", ""));

	}
}

package com.design.model.strategy.pattern;

public interface ITagManager {
	public Long getPlByCate(String cateOne, String cateTwo);
}

package com.design.model.strategy.pattern;

public class GjTagManager implements ITagManager {

	@Override
	public Long getPlByCate(String cateOne, String cateTwo) {
		return 10L;
	}

}

package com.design.model.strategy.pattern;

public class BxTagManager implements ITagManager {

	@Override
	public Long getPlByCate(String cateOne, String cateTwo) {
		return 20L;
	}

}

package com.design.model.strategy.pattern;

public class CateProductLineUtil {

	private ITagManager tagManager;

	public long getProductLIneByCate(String catOne, String cateTwo) {
		return tagManager.getPlByCate(catOne, cateTwo);
	}

	public void setTagManager(ITagManager tagManager) {
		this.tagManager = tagManager;
	}

	public ITagManager getTagManager() {
		return tagManager;
	}
}

策略模式,使用接口,接口有多个实现类。具体使用接口得实现类替换接口。

你可能感兴趣的:(策略模式)