zoukankan      html  css  js  c++  java
  • Head First 设计模式笔记(第十章 状态模式 & 第十一章 代理模式)

    第十章 状态模式 p385~428, 第十一章 代理模式 p429~p497.

    概述

    状态模式, 一个对象有多个状态和多个方法, 方法内需要根据状态去判断, 所以方法内有多个if-else. 代码的耦合性很高, 需要增加新的状态比较麻烦. 所以将每个状态都设计成一个类, 都实现共同的几个方法, 效果是将方法内的多个if-else拆分到各个类的方法中去.

    代理模式, 隐藏真实对象, 利用proxy对象访问真实对象的方法, 有远程代理, 虚拟代理, 保护代理等.

    状态模式

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

    代理模式

    为另一个对象提供了一个替身或者占位符以控制对这个对象的访问
    

    AOP编程用到了代理模式. 利用jdk的动态代理, 你每次不是直接使用对象, 而是使用对象的Proxy, 这样就可以在Proxy中加一些通用的操作, 如日志, 事务等.

    现实场景

    状态模式

    状态较少时, if-else就解决了. 状态较多时, 可以试着使用状态模式.

    代理模式

    学习下AOP

  • 相关阅读:
    hbase distributed setup and configuration
    代码优化 性能调优
    正则表达
    [转载]Java&.Net虚拟机精简(GreenJVM&GreenDotNet发布)
    [JQuery]一款不错的jquery验证框架
    js特效集
    jQuery滚动插件2 jCarousel
    c3p0连接池
    php5 apache config
    jQuery滚动插件 (轮播)
  • 原文地址:https://www.cnblogs.com/winwink/p/HeadFirstPattern_P6_State_Proxy.html
Copyright © 2011-2022 走看看