【week03】总结

用户头像
chengjing
关注
发布于: 2020 年 06 月 22 日



本周学习了设计模式,

1 设计模式的目的,解决问题,问题是重复出现的,而每个设计模式都是解决特定问题的,可以重复使用。

2 设计模式实现主要是基于多态。这里说明一些装饰模式,以前对装饰模式没有理解,这次理解了,装饰模式的特征,装饰类都是通过构造方法传递,被装饰类会先调用装饰类的方法,来对自己的实现进行装饰。

3 前几年开放.net 的winform的企业应用程序时,设计过一个类似框架的概念,来解决winform重用和界面代码混杂的问题。按照设计模式的概念,应该是使用了观察者模式和状态模式。

以前的开发方式: winform定义一个界面,按照vs的开发实例,控件的事件处理方法都包含在winform类中,对应一个编辑界面来说,这个编辑界面处于新建、修改、详情、审核等等状态下,各个输入库和按钮的可以操作性各有差别。那么在一个按钮的事件里会写很多代码来判断当前状态,代码非常混乱。解决方式如下:

声明IState接口,其中包含了State中需要操作类似:DoInit(), DoAdd, DoUpdate, DoRemove, DoDetail, DoAudit等

首先我想到先把观察者放到winform类之外。声明一个WinFormController类,手动挂接需要的事件处理程序,在事件处理中再调用{ this.state.Doxxx(); }

WinFormController类的SetCurrentState的方法中调用:this.currentState = value; this.CurrentState.DoInit(); 这句进行状态的初始化。

状态迁移:各个状态在处理完相关方式后,进行相应的状态迁移。如在新建状态的保存按钮处理里,处理完成直接调用controller.SetEditState(),从而迁移到编辑模式

用户头像

chengjing

关注

程靖 2018.06.06 加入

还未添加个人简介

评论

发布
暂无评论
【week03】总结