复习23种设计模式

前言在准备做Eclipse的UML图的之前,先复习一下23种设计模式。

建造型 面向对象的基础是对象,如何new对象是一门学问.

动机:1新的费时2.提取新的代码3.IOC
  • 单例模式,多例模式,(多例+可新) - 类似缓存,减少new
  • 简单工厂模式,工厂模式 一维的new,
  • 抽象工厂模式 - 二维的new
  • 建造者模式 - 多维的new(一般会封装的特别简单)
  • 原型模式 大对象用复制将比一个一个新的更快
实现: IOC + 克隆

结构型 管理和组织对象.

动机: 1.复用已有对象 2.管理对象之间关系
  • 组合模式 聚合多个对象,
  • 适配器模式 缺省类适配(常用-httpservlert的父类) 对象适配(兼容用户和第三方 内部转化,实现多继承,其他部分接口没定义好之前充当代替作用)
  • 桥接模式 一个类中存在2个多变的类,就可以拆分出来,中间通过一个类来连接。如业务bean实体bean
  • 装饰模式 透明的添加功能 IO
  • 代理模式 私密的控制权限(可以添加,限制功能) aop
  • 门面模式 定义高层接口 slf4j
  • 享元模式 减少内存 string
实现: 组合 继承

行为型 对象之间的通信

动机: (如何实现具体的业务)
  • 责任链模式 想想流水线 requst soa 烽火台的context
  • 命令模式 命令和处理者解耦 drools 规则引擎的简单实现
  • 解释器模式 将内容解释成指定内容 规则引擎里面的一条解释指令
  • 迭代器模式 按顺序保护内部对象 不解释
  • 中介者模式 mvc中的c 一般用不到,同时慎用.小心错误的调停 angular的双向数据绑定
  • 备忘录模式 保存一个对象的某个状态 撤回操作, 但是一般用历史表存放.用来提高性能
  • 观察者模式 当一个对象被修改时,则会自动通知它的依赖对象 单向数据绑定,订阅,好友上线提示
  • 状态模式 类的行为是基于它的状态改变的 工作流
  • 策略模式 一个类的行为或其算法可以在运行时更改 , 就是多态.
  • 模板模式 定义主要流程,具体实现交给子类 sun的排序 httpservlert 的doGet
  • 访问者模式 稳定的数据结构和易变的操作耦合问题 url拦截和过滤器,转发

总结

对象是一切 如何new和管理对象是个大问题
紧记:合理利用内存(少用new). 组合 继承 重写 回调 这就可以实现所有模式。实现只是小事

如果我自己设计整合框架的话:

  • 我会不让用户用new,统一使用一个工厂,来实现真正的IOC,当需要新对象时上报
  • 并整合第三方框架给用户使用的时候,使用门面模式-定义高级接口.避免直接引用第三方jar的出现
  • 模拟requset 定义上下文,存储一次交易的所有信息。
  • 用Config类代替xml
  • 用Map代替实体类
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值