
本网站不提供下载链接,喜欢看书的朋友请关注公众号:【lennylee的碎碎念】(lennyleede),首页回复:授人以渔,自动获取搜索资源的方法。
内容简介:
本书作者是当今面向对象软件开发的权威,他在一组专家级合作者的帮助下,将40多种经常出现的解决方案转化成模式,最终写成这本能够应用于任何一种企业应用平台的、关于解决方案的、不可或缺的手册。本书获得了2003年度美国软件开发杂志图书类的生产效率奖和读者选择奖。本书分为两大部分。第一部分是关于如何开发企业应用的简单介绍。第二部分是本书的主体,是关于模式的详细参考手册,每个模式都给出使用方法和实现信息,并配以详细的Java代码或C#代码示例。此外,整本书中还用了大量UML图来进一步阐明有关概念。
本书是为致力于设计和构建企业应用的软件架构师、设计人员和编程人员而写的,同时也可作为高等院校计算机专业及软件学院相关课程的参考教材。
作者简介:
Martin Fowler 是一位独立咨询顾问,他运用对象技术解决企业问题已经超过十年。他的顾问领域包括健康管理、金融贸易,以及法人财务。他的客户包括 Chrysler、Citibank、UK National Health Service、Andersen Consulting、Netscape Communications。此外 Fowler 也是 objects、UML、patterns 技术的一位合格讲师,他是《AnalysisPatterns》和《UML Distilled》的作者。
前言
模式列表
引言
0.1 架构
0.2 企业应用
0.3 企业应用的种类
0.4 关于性能的考虑
0.5 模式
第一部分 表述
第1章 分层
1.1 企业应用中层次的演化
1.2 三个基本层次
1.3 为各层选择运行环境
第2章 组织领域逻辑
2.1 抉择
2.2 服务层
第3章 映射到关系数据库
3.1 架构模式
3.2 行为问题
3.3 读取数据
3.4 结构映射模式
3.5 建立映射
3.6 使用元数据
3.7 数据库连接
3.8 其他问题
3.9 进一步阅读
第4章 Web表现层
4.1 视图模式
4.2 输入控制器模式
4.3 进一步阅读
第5章 并发
5.1 并发问题
5.2 执行语境
5.3 隔离与不变性
5.4 乐观并发控制和悲观并发控制
5.5 事务
5.6 离线并发控制的模式
5.7 应用服务器并发
5.8 进一步阅读
第6章 会话状态
6.1 无状态的价值
6.2 会话状态
6.3 存储会话状态的方法
第7章 分布策略
7.1 分布对象的诱惑
7.2 远程接口和本地接口
7.3 必须使用分布的情况
7.4 关于分布边界
7.5 分布接口
第8章 通盘考虑
8.1 从领域层开始
8.2 深入到数据源层
8.3 表现层
8.4 一些关于具体技术的建议
8.5 其他分层方式
第二部分 模式
第9章 领域逻辑模式
9.1 事务脚本(Transaction Script)
9.2 领域模型(Domain ModeI)
9.3 表模块(TabIe ModuIe)
9.4 服务层(Service LaYer)
第10章 数据源架构模式
10.1 表数据入口(TabIe Data GatewaY)
10.2 行数据入口(Row Data GatewaY)
10.3 活动记录(Active Record)
10.4 数据映射器(Data Mapper)
第11章 对象-关系行为模式
11.1 工作单元(Unit of Work)
11.2 标识映射(IdentitY Map)
11.3 延迟加载(LazY Load)
第12章 对象-关系结构模式
12.1 标识域(IdentitY FieId)
12.2 外键映射(Foreign KeY Mapping)
12.3 关联表映射(Association TabIe Mapping)
12.4 依赖映射(Dependent Mapping)
12.5 嵌入值(Embedded VaIue)
12.6 序列化LOB (Serialized LOB)
12.7 单表继承(SingIe TabIe Inheritance)
12.8 类表继承(CIass TabIe Inheritance)
12.9 具体表继承(Concrete TabIe Inheritance)
12.10 继承映射器(Inheritance Mappers)
第13章 对象-关系元数据映射模式
13.1 元数据映射(Metadata Mapping)
13.2 查询对象(QuerY Object)
13.3 资源库(RepositorY)
第14章 Web表现模式
14.1 模型-视图-控制器(ModeI View ControIIer)
14.2 页面控制器(Page ControIIer)
14.3 前端控制器(Front ControIIer)
14.4 模板视图(TempIate View)
14.5 转换视图(Transform View)
14.6 两步视图(Two Step View)
14.7 应用控制器(AppIication ControIIer)
第15章 分布模式
15.1 远程外观(Remote Facade)
15.2 数据传输对象(Data Transfer Object)
第16章 离线并发模式
16.1 乐观离线锁(Optimistic OffIine Lock)
16.2 悲观离线锁(Pessimistic OffIine Lock)
16.3 粗粒度锁(Coarse-Grained Lock)
16.4 隐含锁(ImpIicit Lock)
第17章 会话状态模式
17.1 客户会话状态(CIient Session State)
17.2 服务器会话状态(Server Session State)
17.3 数据库会话状态(Database Session State)
第18章 基本模式
18.1 入口(GatewaY)
18.2 映射器(Mapper)
18.3 层超类型(LaYer SupertYpe)
18.4 分离接口(Separated Interface)
18.5 注册表(RegistrY)
18.6 值对象(VaIue Object)
18.7 货币(MoneY)
18.8 特殊情况(SpeciaI Case)
18.9 插件(PIugin)
18.10 服务桩(Service Stub)
18.11 记录集(Record Set)
参考文献
· · · · · · (收起)
原文摘录:
任何对象可能作为远程对象使用时,经常需要一个粗粒度的接口来减少完成某些任务所需要的调用次数。这不仅会影响你的方法调用,同样还会影响你的对象。现在,一个调用中就会包括访问和更改订单及订单的功能,而不会像以前那样分开调用,这会完全影响你的对象结构。你将不得不放弃小粒度对象和小粒度方法带来的清晰意图和小粒度控制所带来的好处。编程变得困难,并且会使生产率下降。 (查看原文)
红色有角F叔
2014-08-05 22:30:49
—— 引自章节:远程外观 (Remote Facade)
一个远程外观是一个粗粒度的外观(facade),它建立在大量的细粒度对象之上。所有细粒度对象都没有远程接口,并且远程外观不包括领域逻辑。远程外观所要完成的功能是把粗粒度的方法转换到低层的细粒度对象上。
任何外观都应该是一层薄薄的皮肤并且只负责很小一部分责任。 (查看原文)
红色有角F叔
2014-08-05 22:30:49
—— 引自章节:远程外观 (Remote Facade)