懒羊学习《深入浅出设计模式》C#代码手札之状态模式与代理模式

来源:互联网 发布:平顶山平高怎么样知乎 编辑:程序博客网 时间:2024/05/21 06:35

状态模式:允许对象在内部状态改变时改变它的行为,对象看起来好像修改了它的类。

书中以糖果公司为例进行了讲解,其实这个模式我用得特别多,当然并没有用真正使用模式,就像那种如果怎么样就怎么样,又如果怎么样再怎么样,都可以换成这种模式,而我好像都习惯于如果就如果就。参照了网络引用了网络的例子,以一个人的喜怒疯来进行阐述。人在怒完以后直接转为开心,开心完后又转为疯。当状态可以定为在什么状态下做什么事,这样很容易完成,我一直以为是这样,就是定义好每个状态的事,然后通过对象去进行调用,只是在本例中更多了一层意思,就是在对象状态发生改变时,处理完这个状态发生的事情后,它的状态又为之改变,也就是自动的完成了状态的转换。

代理模式:为另一个对象提供一个替身或占位符以控制对这个对象的访问。

看名字就很容易理解,就是A去代替B,通过A就可以找到B中的东西,就像我要买个东西,但得去超市,但超市实在太远了,不高兴去,然而附近有个家伙,专门从超市买回来来卖,而我可以直接从他那买,当然可能付出的代价要高一些,这个模式也就是这个例子。

那你可能会讲,为什么我要用代理呢,代理有什么好处呢?其实就和上面的例子中一样,远嘛!有些东西我自己根本无法访问到,比如说一些网络啊,但代理它可以访问,而这时我们只需要访问代理就可以了。代码就不吹了,我这连网都上不了,所以就不写了。

 

下载地址

下载地址