文章分类 -  设计模式/软件架构

摘要:AOP(面向切面编程:Aspect Oriented Programming)为诸如日志记录、性能统计、安全控制、事务处理、异常处理等与具体业务逻辑无关,却需要在全局范围进行执行的功能提供了一种良好重用和与业务逻辑解耦的实现思路。AOP思想是围绕着切面进行的,所谓“切面”就是目标对象的某种操作,其基本过程是在系统其它部分调用目标对象的某种操作时拦截这些调用,在进行真正的调用... 阅读全文
posted @ 2010-09-18 17:53 haiq 阅读(6341) 评论(4) 推荐(1)
摘要:本文通过日常开发中遇到的"异步执行和进度显示"的场景探讨策略模式与装饰者模式的应用。也许很多人都会遇到过这么一个场景:需要执行一系列的耗时很长的操作,在这过程中还需要不断地向界面显示操作的进度,通常以进度条、或者进度条+进度消息等形式展现。具体场景例如:文件的传送、下载,大量内容的搜索,程序的安装过程等等。在些场景里有一些共性,就是都可以分成两个部分:业务操作的执行、操作进度的显示。而由于一些特定... 阅读全文
posted @ 2010-06-10 22:11 haiq 阅读(2688) 评论(3) 推荐(0)
摘要:近日在做一个小程序,最初采用了 SqlServer 数据库,后来为了便于部署,转而采用了 Firebird 嵌入式数据库。在重构代码转到 Firebird 的过程中,对“数据实体的数据表的ID字段是否应该使用自增长字段”这个问题做了一些思考,在此做一些总结。 对于是否应该使用自增长的ID字段的问题,个人的观点是应该根据自己的项目情况考虑,谨慎使用。要“谨慎&rd... 阅读全文
posted @ 2010-06-04 22:55 haiq 阅读(3458) 评论(0) 推荐(0)
摘要: 运行时自更新程序在实现上面对的主要问题上什么呢? 先说“更新”一词,“更新”有时也叫“升级”,“更新”程序的过程实际上就是以新的程序文件替换旧的程序文件的过程。在现实中,程序文件通常是由 .exe、.dll 以及其它的诸如xml,ini之类的用于配置的文件组成。在本文中是指.exe,.dll这些包含程序代码的文件。 “运行时更新”的主要问题是 .exe、.dll 文件在程序运行的时候会被系统锁定,因而进行文件替换的时候会被系统阻止。而如果把程序停止了再进行升级的话,而且无法由要升级的程序自身完成,得借助另一个程序完成,换句话说这不叫“运行时升级”了。本文里的“运行时升级”是指不中断正在运行的程序而同时进行程序文件的升级替换,升级完成后的新功能会在程序的下次运行后得以展现。 阅读全文
posted @ 2010-06-04 21:56 haiq 阅读(1594) 评论(5) 推荐(4)