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

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

    概述

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

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

    状态模式

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

    代理模式

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

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

    现实场景

    状态模式

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

    代理模式

    学习下AOP

  • 相关阅读:
    对java中接口的简单理解
    jqgrid
    sed跨行匹配替换
    linux 安装 mysql
    mysql 导入或导出(mysqldump)数据
    spring boot slf4j + logback
    原码、反码、补码
    Java线程池(一)
    springboot 多环境配置及打包资源
    springboot自定义yaml配置文件
  • 原文地址:https://www.cnblogs.com/winwink/p/HeadFirstPattern_P6_State_Proxy.html
Copyright © 2011-2022 走看看