java 设计模型 之 策略模型与状态模型

2019-04-13 22:15发布

最近项目不是太忙,在看java设计模式.发现在有几个模式之间有点模糊
策略模型与状态模型
代理模型与策略模型

这三个模型在代码上好像没太大区别
策略模型与状态模型
之前看过一大神的文章 [url]http://www.cnblogs.com/java-my-life/archive/2012/06/08/2538146.html[/url] 看不之后感觉不错... :D

总结出 "策略模型与状态模型" 根本区别 "状态模式"的行为是平行性的,不可相互替换的;而"策略模式"的行为是平等性的,是可以相互替换的


代理模型与策略模型
看到网上的 "代理模型" 差不多是这么写的(简单写写)

interface AInterface{
methodA();
}

class BCls implements AInterface{
methodA(){
System.out.println("aaa");
}
}

class CCls implements AInterface{
methodA(){
System.out.println("aaa");
}
}

class ProxyCls{

AInterface inter;

public ProxyCls(AInterface inter){
this.inter=iter;
}

public void show(){
inter.methodA();
}

}

class ProxyTest{

public static void main(String[] arg){

ProxyCls proxyCls=new ProxyCls(new BCls());

proxyCls.show();
}

}


这样 "代理与策略"区别在那? 如果 把ProxyCls 改成 还可以认同

class ProxyCls{

CCls inter;
public void show(){
if(inter==null){
inter=new CCLS();
}
inter.methodA();
}

class ProxyTest{

public static void main(String[] arg){

ProxyCls proxyCls=new ProxyCls();

proxyCls.show();
}

}




各位大神们有其他的理解没?小弟 求教