组合与创新!!!!分与合,思考的技能
《Design Patterns: Elements of Reusable Object-Oriented Software》(即后述《设计模式》一书),由 Erich Gamma、Richard Helm、Ralph Johnson 和 John Vlissides 合著(Addison-Wesley,1995)。这几位作者常被称为”四人组(Gang of Four)”。
Factory 模式
左边的EIT造型负责创建右边的EIT造型的对象,就是左边的EIT造型为:Factory工厂EIT
右边EIT造型为:Product产品EIT
/**
* Description: 抽象处理者
*/
abstract class Handlerr {
protected Handlerr nextHandler;
public void setNextHandler(Handlerr nextHandler) {
this.nextHandler = nextHandler;
}
public abstract void handlerRequest(int request);
}
/**
* 第一级处理者
*/
public class HandlerA extends Handlerr{
@Override
public void handlerRequest(int request) {
if(request<2){
System.out.println("小事A处理");
}else {
nextHandler.handlerRequest(request);
}
}
}
/**
* 第二级处理者
*/
public class HandlerB extends Handlerr{
@Override
public void handlerRequest(int request) {
if(request>=2 &&request<5){
System.out.println("中级事物B处理");
}else{
nextHandler.handlerRequest(request);
}
}
}
/**
* 第三级处理者
*/
public class HandlerC extends Handlerr{
@Override
public void handlerRequest(int request) {
if(request>=5){
System.out.println("大事物C处理");
}
}
}
/**
* 请求处理者
*/
public class Clientr{
public void handlerClient(int request) {
Handlerr handlerA,handlerB,handlerC;
handlerA = new HandlerA();
handlerB = new HandlerB();
handlerC = new HandlerC();
//创建职责链
handlerA.setNextHandler(handlerB);
handlerB.setNextHandler(handlerC);
handlerA.handlerRequest(request);
}
public static void main(String[] arg){
new Clientr().handlerClient(1);
new Clientr().handlerClient(3);
new Clientr().handlerClient(9);
}
}