程序设计-设计模式

设计模式
  这个和模块之前的客观分散情况,权限情况,以及实现分配(多人协作)相适应的。
 
分散情况
不在同一个物理层 ---- BS系统 ---- 方法--参数----都退化到字符串。
不在同一个App,程序之间 ---- DCOM ----
不再同一个线程,多线程 ----
 
权限情况
     需要认证
     需要有效性判断--
     内部函数---数据访问完全开放。
 
 实现的途径
   一般总的模式都是框架实现,
     通过继承,组合。形成聚集,适应各层次。
 
类--函数--变量之间的转换
 
变量(‘函数名称’)--函数/类 findclass(‘xx’) 配置这些
 
二次维度--参数为函数/类
函数(函数,变量)--invoke(fun,data)
{
fun(data)
}
类(类,变量)--for(Iserver,server)。配置实现接口的类。
 
  
 
程序内部的架构设计
大的方面就是程序对应现实模型,会是一个立体结构,多个模块搭建而成。
核心系统结构+外围结构。
        大的方向--面向接口,逻辑分层,按流程切分(MVC),按服务切分(AOP)
 
把一些通用的,琐碎的工作集中成一个模块。。
~~模块的包装
      功能模块的前后处理,容器壳
      PROXY 模式。
 
数据模块的访问,查询,遍历
可以接收处理方法--访问者模式(Visitor Pattern)
 
 
~~ 信息流的传递-
 
信息集中接收
 
--统一处理
中介模式(Mediator)-- 界面的集中响应
--分发去处理-
观察者模式(Observer)
 
模型的形态
   命令响应类型
   状态变化类型
 
与框架的交互,被置入框架中
  PROXY 模式。。这个在BS结构中用处特别大。
A. 每个访问都需要前置流程和后置流程。
     前置过滤字符串,权限认定。。。
    应用模块都需要统一代理,添加前后流程。
B.AOP模式。
   日志系统。
 
和外部模块,系统的交互设计-已经固化状态。
适配模式(Adapter)---
 
 
 
 
模块装配松散程度
纯接口
   配置接口的实现类
     controller -- IService --IData
     config IService--ServiceObj
  指定实现类
     setImplement(xxobj)
 
接口+实现混合--抽象类
 
纯实现(函数+数据)--实现类
 
纯函数--
 
纯数据--
 
 
 
性能优化--FLYWEIGHT 模式
 
变动不大的类,不用每次去重新生成,生成一次后加到一个MAP存储中。
读取的时候通过这个Map来获取。
JDYZ中有个UserInfo也是这样的。但这个类还是会变的。更新了以后缓存里没更新,反而有问题
 
 
行为模型
 
链式步骤-责任链模式(Chain of Responsibility)
消息机制-一步步传递下去。直到再没有处理的模块
 
 
命令模式(Command)-
没看不出来有啥用,可能系统是命令式的 ,如使用者通过一个个按钮控制的。
然后把这个命令封装成一个类。。。
 
 中介模式(Mediator)
把界面上的变化,由一个类来统一处理。。。
 
备忘录模式(Memento)
例如,Undo,Redo这些功能,在时间上记录下来。
 
观察者模式(Observer)-订阅模式
有一个通知类,来维护需要通知的对象。如消息系统。
 

posted @ 2021-08-12 10:09  shijianbo  阅读(222)  评论(0)    收藏  举报