软件开发设计模式培训总结(1)
来源:互联网 发布:白金数据l先生是谁 编辑:程序博客网 时间:2024/05/20 06:23
参加工作三年多,今天有机会参加软件开发设计的培训,讲师是oracle公司过来的,讲的还不错。
由简单的例子:认证组件和logger系统的设计入手。
1、认证组件
功能主要为:认证(对已有账户登录时的验证),存储,加密等几个功能点。
1)分析主要功能的变和不变,可以用于抽取模版方法
2)确定存储可以支持用户变化的需求,加密可以支持用户变化的需求,需要在实现中参考现有模式,如:
工厂模式,策略模式的使用。
工厂模式:需要用于构造存储和加密的具体实现,需要分别创建两个工厂来实现。当然,如果许可,可以引入策略模式。
从该例子的实际讲解还引出了:
单一职责(不以功能为区分,而是已变化点,切换归类需求);
开闭原则(对需求变化,需要在设计上能够满足对拓展开放,对修改封闭);
对接口编程,而不对实现编程;(依赖于接口,而不依赖于实现)
隔离变化;
需求总是在不断变化,而且这变化是依赖于客户,而不依赖于开发,需要以积极的态度和拥抱设计的思考来应对新需求。
良好的设计可以有效的避免新需求和功能开发所带来的进度和项目负担,也有利于项目和产品架构的复用和迁移。
2.Logger系统的实现:
需求较为复杂:
1)需要支持log基本信息,级别,线程id,时间,code中的位子
2)支持loge基本信息可以拓展
3)输出目的点可以多种
4)格式化loger信息可以多种形式
5)一个目的地支持一种Logger格式
6)一个Logger可以支持同一消息输出到多个目的地和已多种方式输出
7)支持配置文件
8)支持日志筛选过滤
一开始在在实现和讨论实现上,都没有办法很好的理解和解决上述需求,主要是无法支持只变更log基本信息,而不用更改输出格式的实现。
该例子较好的设计是采用facade 模式,以及知道最少的原则(迪米特原则)。
具体还举了前台mm的例子来牵引实现和设计。
对于该系统抽象如下:
1、过滤
2、格式化
3、输出
由Logger manager获取配置,交给Logger类,通过handler具体调用filer,格式化类,output来基本实现。
第一次写总结,内容比较零散,而且还欠缺伪代码和UML图。带后续补充。
- 软件开发设计模式培训总结(1)
- 软件开发模式培训总结(2)
- 软件开发过程培训总结
- 软件开发设计模式
- 软件开发常用设计模式—单例模式总结(c++版)
- 软件重构与设计模式培训笔记
- RUP软件开发设计模式
- 软件开发技术:设计模式
- 软件开发培训之--SQL 语言(1)
- 软件管理培训总结
- 软件开发设计模式(一)-单例模式
- 软件开发设计模式(二)—多例模式
- 软件开发设计模式(三)—简单工厂模式
- 软件开发培训
- ms2软件开发和管理四周培训总结
- 《敏捷软件开发过程及最佳实践》培训总结
- 设计模式培训有感
- 软件开发总结-开发模式选择
- hibernateDaoSupport中的一些公用常用方法
- 第9周 项目2-1 运用while语句做循环程序求正负分数累加和
- JSONKit 编译报错解决办法
- golang pprof 使用
- cocos2d-x3.x学习之旅(一)
- 软件开发设计模式培训总结(1)
- post和get的区别
- socket 延时
- poj 1129 Channel Allocation
- opencv的图象格式IplImage 和CBitmap的转换
- POJ3017 Cut The Sequence
- OpenCV 配置
- hdu2089 不要62
- Linux驱动开发五:中断方式获取按键值