ASP.NET 设计模式 - 读书笔记

第1章 成功应用程序的模式

简约原则(KISS)的目标就是让代码保持简洁,避免引入任何不必要的复杂度。

讲述而不要询问(Tell, Don't Ask)原则

 

第2章 剖析模式的模式

GoF设计模式属于以下分组之一:创建型、结构型及行为型。创建型设计模式处理构造对象的责任,结构型设计模式关注让对象工作在一起以产生新的功能,行为型设计模式则关注算法和通信。

 

第4章 业务逻辑层:组织

领域驱动设计中的值对象

值对象通常并不会单独存在,它们通常是(但并非总是)实体的属性。

 

下面是一个简单的博客系统用ORM的sample,它用Castle.ActiveRecord封装了NHibernate,使用起来还是蛮方便的,适合用在不太复杂的业务场景

ActiveRecord

 

下面是一个Domain Model的sample
ASPPatterns.Chap4.DomainModel.Model 这里只关注业务
持久化由ASPPatterns.Chap4.DomainModel.Repository来实现
ASPPatterns.Chap4.DomainModel.AppService隔离app和domain model的联系,并起到协调的作用

DomainModel

 

第5章 业务逻辑层:模式

Specification(规格)模式用于把布尔算法中的业务逻辑封装到业务实体之外。

Composite(组合)模式可以将一组对象当成一个对象实例。

在Composite模式中,可以把对象动态地组合成树状或层次结构集合并加以使用,这里的关键是它们之间有行为链。

下例把Specification(规格)模式和Composite(组合)模式巧合地链接在一起:

Sample

 

里氏替换原则LSP规定子类必须与它们的基类具有相同的行为。

子类型必须可以替换成它们的基类型,这意味着子类型的行为必须符合基类型的预期行为。

 

本章小结:

 

第7章 数据访问层

Unit of Work模式可以用来处理多个Repository,因为有些事务将跨越多个Repository。

 

第8章 表示层

有许多可用的开源IoC容器,比如Castle Windsor、Spring.Net、Ninject和PicoContainer.NET以及微软的Unity,还有Jeremy D. Miller的StructureMap。

 

领域实体到ViewModel的映射是单调地将对象映射到对象的乏味工作,AutoMapper可以帮你做 https://github.com/AutoMapper/AutoMapper

 

Castle MonoRail是一个构建在ASP.NET平台之上并借鉴Ruby的Rails框架的开源Web应用程序框架。

NVelocity是一种针对.NET平台采用C#语言编写的模板引擎。

 

小结

 

书基本读完,不再更新。

posted @ 2013-01-29 09:20  姚一^o^  阅读(800)  评论(0编辑  收藏  举报