随笔分类 - 架构设计
摘要:在面向对象设计中,如何通过很小的设计改变就可以应对设计需求的变化,这是令设计者极为关注的问题。为此不少OO先驱提出了很多有关面向对象的设计原则用于指导OO的设计和开发。下面是几条与类设计相关的设计原则。 1. 开闭原则(the Open Closed Principle OCP) 一个模块在扩展性方面应该是开放的而在更改性方面应该是封闭的。因此在进行面向对象设计时要尽量考虑接口封装机制、抽象机...
阅读全文
摘要:Adhesive框架的数据访问层是基于ADO.NET Entity Framework,所以用法和实体框架基本相同。为了满足实际项目的需要,我们在实体框架的基础上做了一些扩展,主要有以下几点: 1、对数据库连接字符串中比较敏感的密码字段进行加密; 2、数据库连接字符串配置脱离本地配置文件(web.config或app.config),集中在配置服务后台进行配置和管理; 3、数据自动审核,只要实体对象实现了IAuditable接口,当添加或修改实体对象时,CreatedOn和ModifiedOn字段会被自动设置为当前日期; 4、逻辑删除,像一些比较重要的业务数据,一般是不允许物理删除的,只要实体
阅读全文
摘要:1、注册表 注册表在基于Windows平台的软件系统中使用非常普遍。优点是可以直接使用Windows提供的API存取和修改系统配置,缺点是和Windows系统结合太紧,另外修改配置也不太方便。 2、ini配置文件 ini配置文件最早出现在Windows的早期版本中,比如Win95,Win98,用来保存操作系统的配置信息。后来一些基于Windows平台的软件系统也采用ini配置文件来保存系统配置。优...
阅读全文
摘要:在上一篇文章中提到配置服务模块分为服务端和客户端,作为使用者只需要关心客户端的一些接口就行了。我们来看一下这些接口的定义。public interface IConfigService { T GetConfigItemValue<T>(string cateName, T defVal); T GetConfigItemValue<T>(string cateName, T defVal, ConfigItemValueUpdateCallback callback); T GetConfigItemValue<T>(string cateNa...
阅读全文
摘要:首先谈一下配置服务的相关背景。在一个复杂的系统中,有些部分可能会存在经常性的变动,这些部分可能是系统本身也可能是业务需求,考虑到系统的灵活性和可扩展性,我们将经常需要改动的部分作为参数配置,以达到在不修改代码的前提下,调整系统功能及业务逻辑。像一些大型系统,比如SAP就是就是一个很好的例子。系统可以通过6000 个"开关"设置,调整软件的业务流程。通常我们会使用本地配置文件(XML)保存配置信息,使用配置文件缺点也很明显,当我们的系统越来越庞大,配置文件会越来越多,甚至需要大量的服务器来支撑时,配置文件的更新相当麻烦,而且各个服务器上配置文件版本的一致性也很难保证。我们的思
阅读全文