索引

索引中的页码为英文原书页码,与本书边栏页码一致。

■A

ABSTRACT CORE,435-437

ADAPTERS,367

AGGREGATES

definition(定义),126-127

examples(例子),130-135,170-171,177-179

invariants(固定规则),128-129

local vs.global identity(本地标识与全局标识),127

overview(概述),125-129

ownership relationships(所属关系),126

Agile design(敏捷设计)

Distillation(精炼),483

MODULES,111

reducing dependencies(减少依赖),265,435-437,463

supple design(柔性设计),243-244,260-264

AIDS Memorial Quilt Project(艾滋病纪念拼被),479

Analysis models(分析模型),47-49

Analysis patterns(分析模式).参见design patterns.

concept integrity(概念完整性),306-307

definition(定义),293

example(示例),295-306

overview(概述),294

UBIQUITOUS LANGUAGE,306-307

ANTICORRUPTION LAYER

ADAPTERS,367

considerations(考虑因素),368-369

example(示例),369-370

FACADES,366-367

interface design(接口设计),366-369

overview(概述),364-366

relationships with external systems(与外部系统的关系),384-385

Application layer(应用层),70,76-79

Architectural frameworks(架构框架),70,74,156-157,271-272,495-496

ASSERTIONS,255-259

Associations(关联)

bidirectional(双向的),102-103

example(示例),169-170

for practical design(为了获得更实用的设计),82-88

VALUE OBJECTS,102-103

Astrolabe(星盘),47

Awkwardness(不足之处),concept analysis(概念分析),210-216

■B

Bidirectional associations(双向关联),102-103

Blind men and the elephant(盲人与象),377-381

Bookmark anecdote(书签趣闻),57-59

BOUNDED CONTEXT.参见CONTEXT MAP.

code reuse(代码重用),344

CONTINUOUS INTEGRATION,341-343

defining(定义),382

duplicate concepts(重复的概念),339-340

example(示例),337-340

false cognates(假同源),339-340

large-scale structure(大型结构),485-488

overview(概述),335-337

relationships(关系),352-353

splinters(不一致),339-340

testing boundaries(测试边界),351

translation layers(转换层),374.参见ANTICORRUPTION LAYER; PUBLISHED LANGUAGE.

vs.MODULES,335

Brainstorming(头脑风暴),7-13,207-216,219

Breakthroughs(突破),193-200,202-203

Business logic,in user interface layer(业务逻辑,位于用户界面层),77

Business rules(业务规则),17,225

■C

Callbacks(回调模式),73

Cargo shipping examples(货运示例).参见examples,cargo shipping.

Changing the design(改变设计).参见refactoring.

Chemical warehouse packer example(化学品仓库打包示例),235-241

Chemistry example(化学示例),377

Cleese,John,5

CLOSURE OF OPERATIONS,268-270

Code as documentation(作为文档的代码),40

Code reuse(代码重用)

BOUNDED CONTEXT,344

GENERIC SUBDOMAINS,412-413

reusing prior art(借鉴先前的经验),323-324

Cohesion(内聚),MODULES,109-110,113

COHESIVE MECHANISMS

and declarative style(声明式风格),426-427

example(示例),425-427

overview(概述),422-425

vs.GENERIC SUBDOMAINS,425

Common language(通用语言).参见PUBLISHED LANG UAGE;UBIQUITOUS LANGUAGE.

Communication(沟通),speech(讲话).参见UBIQUITOUS LANGUAGE.

Communication(沟通),written(书面的).参见documents;UML (Unified Modeling Language); UBIQUITOUS LANGUAGE.

Complexity(复杂性),reducing(减少).参见distillation;large-scale structure(大型结构); LAYERED ARCHITEC-TURE; supple design(柔性设计).

COMPOSITE pattern,315-320

Composite SPECIFICATION,273-282

Concept analysis(概念分析).参见analysis patterns; examples,

concept analysis.

Awkwardness(不足之处),210-216

Contradictions(矛盾之处),216-217

explicit constraints(显式约束),220-222

language of the domain experts(领域专家的语言),206-207

missing concepts(丢失的概念),207-210

processes as domain objects(作为领域对象的过程),222-223

researching existing resources(查询现有资源),217-219 SPECIFICATION,223

trial and error(尝试和出错),219

CONCEPTUAL CONTOURS,260-264

Conceptual layers(概念层),参见LAYERED ARCHITECTURE;RESPONSIBILITY LAYERS

Configuring(配置) SPECIFICATION,226-227

CONFORMIST,361-363,384-385

Constructors,141-142,174-175.参见FACTORIES.

CONTEXT MAP.参见BOUNDED CONTEXT.

Example(示例),346-351

organizing and documenting(组织和文档化),351-352 overview(概述),344-346

vs.large-scale structure(大型结构),446,485-488

CONTEXT MAP,choosing a strategy(选择一种策略)

ANTICORRUPTION LAYER,384-385

CONFORMIST,384-385

CUSTOMER/SUPPLIER DEVELOPMENT TEAMS,356-360

defining BOUNDED CONTEXT,382

deployment(部署),387

external systems(外部系统),383-385

integration(集成),384-385

merging(合并)OPEN HOST SERVICE and PUBLISHED LANGUAGE,394-396

merging(合并)SEPARATE WAYS and SHARED KERNEL,389-391

merging(合并)SHARED KERNEL and CONTINUOUS INTEGRATION,391-393

packaging(打包),387

phasing out legacy systems(逐步淘汰遗留系统),393-394 for a project in progress(对于一个正在开发的项目),388-389

SEPARATE WAYS,384-385

SHARED KERNEL,354-355

specialized terminologies(专用术语),386-387

system under design(正在设计的系统),385-386

team context(团队上下文),382

trade-offs(折中,权衡),387

transformations(转换),389

transforming boundaries(转换边界),382-383

Context principle(上下文主题),328-329.参见BOUNDED CONTEXT; CONTEXT MAP.

CONTINUOUS INTEGRATION,341-343,391-393.参 见

integration.

Continuous learning(持续学习),15-16

Contradictions(矛盾之处),concept analysis(概念分析),216-217

CORE DOMAIN

DOMAIN VISION STATEMENT,415-416

flagging key elements(表明核心元素),419-420

MECHANISMS,425

Overview(概述),400-405

Costs of architecture dictated MODULES(支配MODULE的架构的代价),114-115

Coupling(耦合)MODULES,109-110

Customer-focused teams(以客户为中心的团队),492

CUSTOMER/SUPPLIER,356-360

■D

Database tuning(优化数据库),example(示例),102

Declarative design(声明式设计),270-272

Declarative style of design(声明式设计风格),273-282,426-427

Decoupling from the client(与客户解耦),156

Deep models(深层模型)

distillation(精炼),436-437

overview(概述),20-21

refactoring(重构),189-191

Deployment(部署),387.参见MODULES.

Design changes(设计变更).参见refactoring.

Design patterns(设计模式).参见analysis patterns.

COMPOSITE,315-320

FLYWEIGHT,320

overview(概述),309-310

STRATEGY,311-314

vs.domain patterns(领域模式),309

Development teams(开发团队).参见teams.

Diagrams(图表).参见documents; UML(Unified Modeling Language).

Discovery(发现),191-192

Distillation(精炼).参见examples,distillation.ABSTRACT CORE,435-437

deep models(深层模型),436-437

DOMAIN VISION STATEMENT,415-416

Encapsulation(封装),422-427

HIGHLIGHTED CORE,417-421

INTENTION-REVEALING INTERFACES,422-427

large-scale structure(大型结构),483,488-489

overview(概述),397-399

PCB design anecdote(PCB设计趣闻),7-13

Polymorphism(多态),435-437

refactoring targets(重构目标),437

role in design(设计中的角色),329

SEGREGATED CORE,428-434

separating CORE concepts(分离 CORE 概念),428-434 Distillation(精炼),COHESIVE MECHANISMS and declarative style(和声明式风格),426-427

overview(概述),422-425

vs.GENERIC SUBDOMAINS,425

Distillation(精炼),CORE DOMAIN

DOMAIN VISION STATEMENT,415-416

flagging key elements(表明核心元素),419-420

MECHANISMS,425

overview(概述),400-405

Distillation,GENERIC SUBDOMAINS

adapting a published design(采用公开发布的设计),408 in-house solution(内部解决方案),409-410

off-the-shelf solutions(现成的解决方案),407

outsourcing(外包),408-409

overview(概述),406

reusability(可重用性),412-413

risk management(风险管理),413-414

vs.COHESIVE MECHANISMS,425

Distillation document(精炼文档),418-419,420-421

Documents(文档)

code as documentation(作为文档的代码),40

distillation document(精炼文档),418-419,420-421

DOMAIN VISION STATEMENT,415-416

explanatory models(解释性模型),41-43

keeping current(保持最新状态),38-40

in project activities(深入各种项目活动之中),39-40

purpose of(目的在于),37-40 validity of(正当性),38-40 UBIQUITOUS LANGUAGE,39-40

Domain experts(领域专家)

gathering requirements from(从„„处搜集信息).参见

concept analysis; knowledge crunching.

language of(„„的知识),206-207.参见UBIQUITOUS LANGUAGE.

Domain layer(领域层),70,75-79

Domain objects(领域对象),life cycle(生命周期),123-124.参见AGGREGATES; FACTORIES; REPOSITORIES.

Domain patterns vs.design pattern(领域模式与设计模式),309

DOMAIN VISION STATEMENT,415-416

Domain-specific language(领域特定语言),272-273

Duplicate concepts(重复的概念),339-340

■E

Elephant and the blind men(盲人与象),377-381

Encapsulation(封 装).参 见 FACTORIES.COHESIVE MECHANISMS,422-427

INTENTION-REVEALING INTERFACES,246

REPOSITORIES,154

ENTITIES.参 见 associations; SERVICES; VALUE OBJECTS.automatic IDs(自动生成的ID),95-96

clustering(聚集).参见AGGREGATES.establishing identity (定义标识),90-93

example(示例),167-168

ID uniqueness(ID唯一性),96

identifying attributes(标识属性),94-96

identity tracking(实体跟踪),94-96

modeling(建模),93-94

referencing with(参考)VALUE OBJECTS,98-99

vs.Java entity beans(Java实体bean),91

Evant(Evant公司),504-505

EVOLVING ORDER,444-446,491

Examples (示例)

AGGREGATES,130-135

analysis patterns(分析模式),295-306

ASSERTIONS,256-259

breakthroughs(突破),202-203

chemical warehouse packer(化学仓库打包),235-241

chemistry(化学),PUBLISHED LANGUAGE,377

CLOSURE OF OPERATIONS,269-270

COHESIVE MECHANISMS,425-427

composite SPECIFICATION,278-282

CONCEPTUAL CONTOURS,260-264

constructors(构造函数),174-175

Evant(Evant公司),504-505

explanatory models(解释性模型),41-43

extracting hidden concepts(提取隐藏的概念),17-20

insurance project(保险项目),372-373

integration with other systems(与其他系统集成),372-373

INTENTION-REVEALING INTERFACES,423-424

introducing new features(引入新特性),181-185

inventory management(库存管理),504-505

investment banking(投资银行业务),211-215

KNOWLEDGE LEVEL,466-474

LAYERED ARCHITECTURE,71-72

MODEL-DRIVEN DESIGN,52-57

MODULES,111-112

multiple teams(多个团队),358-360

online banking(网上银行),71-72

organization chart(组织结构图),423-427

package coding in Java(Java中的包编码),111-112

paint-mixing application(调漆应用程序),247-249,252-254,256-259

payroll and pension(工资和养老金系统),466-474

PLUGGABLE COMPONENT FRAMEWORK,475-479

procedural languages(过程语言),52-57

prototypes(原型),238-241

PUBLISHED LANGUAGE,377

purchase order integrity(采购订单的完整性),130-135

refactoring(重构),247-249

RESPONSIBILITY LAYERS,452-460

selecting from Collections(从集合中选择子集),269-270

SEMATECH CIM framework(SEMATECH CIM框架),476-479

SIDE-EFFECT-FREE FUNCTIONS,252-254,285-286

SPECIFICATION,235-241

supple design(柔性设计),247-249

time zones(时区),410-412

tuning a database(优化数据库),102

VALUE OBJECTS,102

Examples,cargo shipping (货运示例)

AGGREGATES,170-171,177-179

allocation checking(配额检查),181-185

ANTICORRUPTION LAYER,369-370

associations(关联),169-170

automatic routing(自动安排路线),346-351

booking (预定)

BOUNDED CONTEXT,337-340

extracting hidden concepts(提取隐藏的概念),17-20

legacy application(遗留应用程序),369-370

overbooking(超订),18-19,222

vs.yield analysis(收益分析),358-360

cargo routing(安排货运路线),27-30

cargo tracking(货物跟踪),41-43

COMPOSITE pattern,316-320

composite routes(组合的路线),316-320

concept analysis(概念分析),222

conclusion(结论),502-504

constructors(构造函数),174-175

CONTEXT MAP,346-351

ENTITIES,167-168

extracting hidden concepts(提取隐藏的概念),17-20

FACTORIES,174-175

identifying missing concepts(找出丢失的概念),207-210

isolating the domain(隔离领域),166-167

large-scale structure(大型结构),452-460

MODULES,179-181

multiple development teams(多个开发团队),358-360

performance tuning(性能优化),185-186

refactoring(重构),177-179

REPOSITORIES,172-173

RESPONSIBILITY LAYERS,452-460

route-finding(路线查找),312-314

scenarios(场景),173-177

SEGREGATED CORE,430-434

shipping operations and routes(航运操作和路线),41-43

STRATEGY,312-314

system overview(系统简介),163-166

UBIQUITOUS LANGUAGE,27-30

VALUE OBJECTS,167-168

Examples(示例),concept analysis(概念分析)

extracting hidden concepts(提取隐藏的概念),17-20

identifying missing concepts(找出丢失的概念),207-210

implicit concepts(隐式概念),286-288

researching existing resources(查询现有资源),217-219

resolving awkwardness(解决不足之处),211-215

Examples(示例),distillation(精炼)

COHESIVE MECHANISMS,423-424,425-427

GENERIC SUBDOMAINS,410-412

organization chart(组织结构图),423-424,425-427

SEGREGATED CORE,428-434

time zones(时区),410-412

Examples(示例),integration(集成)

ANTICORRUPTION LAYER,369-370

Translator(转换者),346-351

unifying an elephant(“大象”的统一),378-381

Examples(示例),large-scale structure(大型结构)

KNOWLEDGE LEVEL,466-474

PLUGGABLE COMPONENT FRAMEWORK,475-479

RESPONSIBILITY LAYERS,452-460

Examples,LAYERED ARCHITECTURE

partitioning applications(为应用程序分层),71-72

RESPONSIBILITY LAYERS,452-460

Examples(示例),loan management(贷款管理)

analysis patterns(分析模式),295-306

breakthroughs(突破),194-200

concept analysis(概念分析),211-215,217-219

CONCEPTUAL CONTOURS,262-264

conclusion(总结),501-502

interest calculator(利息计算器),211-215,217-219,295-306

investment banking(投资银行业务),194-200

refactoring(重构),194-200,284-292

Explanatory models(解释性模型),41-43

Explicit constraints(显式的约束),concept analysis(概念分析),220-222

External systems(外部系统),383-385.参见integration.

Extracting hidden concepts(提取隐藏的概念),17-20.参见

implicit concepts.

■F

FACADES,366-367

Facilities(信贷),194

FACTORIES

configuring SPECIFICATION(配置SPECIFICATION),226-227

creating(创建),139-141

creating objects(创建对象),137-139

designing the interface(接口的设计),143

ENTITY vs.VALUE OBJECT,144-145

example(示例),174-175

invariant logic(固定规则的逻辑),143

overview(概述),136-139

placing(放置),139-141

reconstitution(重建),145-146

and REPOSITORIES,157-159

requirements(要求),139

FACTORY METHOD,139-141

False cognates(假同源),339-340

Film editing anecdote(电影剪辑趣闻),5

Flexibility(灵活性).参见supple design.

FLYWEIGHT pattern,320

Functions(函数),SIDE-EFFECT-FREE,250-254,285-286

■G

GENERIC SUBDOMAINS

adapting a published design(公开发布的设计),408 example(示例),410-412

in-house solution(内部解决方案),409-410

off-the-shelf solutions(现成的解决方案),407

outsourcing(外包),408-409

overview(概述),406

reusability(可重用性),412-413

risk management(风险管理),413-414

vs.COHESIVE MECHANISMS,425

Granularity(粒度),108

■H

Hidden concepts(隐藏的概念),extracting(提取),17-20 HIGHLIGHTED CORE,417-421

Holy Grail anecdote(有关《圣杯与巨蟒》电影的一些趣闻),5

■I

Identity (标识)

establishing(创建),90-93

local vs.global(本地vs.全局),127

tracking(跟踪),94-96

Immutability of VALUE OBJECTS(保持VALUE OBJECT不变),100-101

Implicit concepts (隐式概念)

categories of(„„的类别),219-223

recognizing(识别),206-219

Infrastructure layer(基础设施层),70

Infrastructure-driven packaging(基础设施驱动的打包),112-116

In-house solution(内部解决方案),GENERIC SUBDOMAINS,409-410

Insurance project example(保险项目示例),372-373

Integration(集成)

ANTICORRUPTION LAYER,364-370

CONTINUOUS INTEGRATION,341-343,391-393

cost/benefit analysis(成本/效益分析),371-373

elephant and the blind men(盲人与象),377-381

example(示例),372-373

external systems(外部系统),384-385

OPEN HOST SERVICE,374

SEPARATE WAYS,371-373

translation layers(转换层),374.参见PUBLISHED LANGUAGE.Integrity(集成)参见model integrity.

INTENTION-REVEALING INTERFACES,246-249,422-427

Interest calculator examples(利息计算器示例),211-215,217-219,295-306

Internet Explorer bookmark anecdote(IE书签趣闻),57-59

Invariant logic(固定规则的逻辑),128-129,143

Inventory management example(库存管理示例),504-505

Investment banking example(银行业投资示例),194-200,

211-215,501

Isolated domain layer(孤立的领域层),106-107

Isolating the domain(隔离领域).参见ANTICORRUPTION LAYER; distillation; LAYERED ARCHITECTURE.

Iterative design process(迭代式设计过程),14,188,445

■J

Jargon(术语).参见PUBLISHED LANGUAGE; UBIQUITOUS LANGUAGE.

Java entity beans vs.ENTITIES(Java实体bean与ENTITY),91

■K

Knowledge crunching(知识消化),13-15

Knowledge crunching(知识消化),example(示例),7-12

KNOWLEDGE LEVEL,465-474

■L

Language of the domain experts(领域专家的语言),206-207

Large-scale structure(大型结构).参见distillation; examples,large-scale structure; LAYERED ARCHITECTURE; strategic design.

CONTEXT MAP,446

Definition(定义),442

development constraints(限制开发),445-446

EVOLVING ORDER,444-446

Flexibility(灵活性),480-481

KNOWLEDGE LEVEL,465-474

minimalism(最小化),481

naive metaphor(幼稚隐喻),448-449

overview(概述),439-443

PLUGGABLE COMPONENT FRAMEWORK,475-479

refactoring(重构),481

role in design(设计中的作用),329

supple design(柔性设计),482-483

SYSTEM METAPHOR,447-449

team communication(团队沟通),482

Large-scale structure(大型结构),RESPONSIBILITY LAYERS choosing layers(选择层),460-464

overview(概述),450-452

useful characteristics(有用的特征),461

LAYERED ARCHITECTURE.参 见 distillation; examples,LAYERED ARCHITECTURE; large-scale structure.

application layer(应用层),70,76-79

callbacks(回调模式),73

conceptual layers(概念层),70

connecting layers(连接各层),72-74

design dependencies(设计依赖),72-74

diagram(图表),68

domain layer(领域层),70,75-79

frameworks(框架),74-75

infrastructure layer(基础设施层),70

isolated domain layer(孤立的领域层),106-107

MVC (MODEL-VIEW-CONTROLLER),73

OBSERVERS,73

partitioning complex programs(给复杂的应用程序划分层次),70

separating user interface,application,and domain(将用户界面层、应用层和领域层分开),76-79

SERVICES,73-74

SMART UI,73

TRANSACTION SCRIPT,79

user interface layer(用户界面层),70,76-79

value of(„„的价值),69

LAYERED ARCHITECTURE,ANTICORRUPTION LAYER ADAPTERS,367 considerations(需要考虑的因素),368-369

FACADES,366-367

interface design(接口设计),366-369

overview(概述),364-366

relationships with external systems(与外部系统的关系),384-385

LAYERED ARCHITECTURE,RESPONSIBILITY LAYERS

choosing layers(选择层),460-464

overview(概述),450-452

useful characteristics(有用的特征),461

Legacy systems(遗留系统),phasing out(逐步淘汰),393-394

Life cycle of domain objects(领域对象的生命周期),123-124.参见AGGREGATES; FACTORIES; REPOSITORIES.

Loan management examples(贷款管理示例).参见examples,loan management.

Local vs.global identity(本地标识与全局标识),127

■M

Merging(合并)

OPEN HOST SERVICE and PUBLISHED LANGUAGE,394-396

SEPARATE WAYS to SHARED KERNEL,389-391

SHARED KERNEL to CONTINUOUS

INTEGRATION,391-393

METADATA MAPPING LAYERS,149

Missing concepts(丢失的概念),207-210

Mistaken identity anecdote(有关错误实体的趣闻),89

Model integrity(模型完整性).参见BOUNDED CONTEXT;CONTEXT MAP; multiple models.

establishing boundaries(建立边界),333-334

multiple models(多个模型),333

overview(概述),331-334

recognizing relationships(识别关系),333-334

unification(统一),332.参见CONTINUOUS INTEGRATION.

Model layer(模型层).参见domain layer.

Model-based language(基于模型的语言).参见UBIQUITOUS LANGUAGE.

MODEL-DRIVEN DESIGN

correspondence to design(与设计的一致性),50-51

modeling paradigms(建模范式),50-52

overview(概述),49

procedural languages(过程语言),51-54

relevance of model(模型的相关),49

tool support(工具支持),50-52

Modeling(建模)

Associations(关联),82-88

ENTITIES,93-94

HANDS-ON MODELERS,60-62

integrating with programming(与编程相结合),60-62

non-object(非对象),119-122

Models(模型)

binding to implementation(与实现绑定)参见MODEL-DRIVEN DESIGN.

and user understanding(以及让用户理解),57-59

MODEL-VIEW-CONTROLLER (MVC),73

Modularity(模块化),115-116

MODULES

agile(敏捷的),111

cohesion(一致性),109-110,113

costs of(„„的成本),114-115

coupling(耦合),109-110

determining meaning of(决定„„的意义),110

examples(示例),111-112,179-181

infrastructure-driven packaging(基础设施驱动的打包),112-116

mixing paradigms(混合范式),119-122

modeling paradigms(建模范式),116-119

modularity(模块化),115-116

naming(命名),110

non-object models(非对象模型),119-122

object paradigm(对象范式),116-119

overview(概述),109

packaging domain objects(对领域对象打包),115

refactoring(重构),110,111

vs.BOUNDED CONTEXT,335

Monty Python anecdote(Monty Pyrhon的趣闻),5

Multiple models(多个模型),333,335-340

MVC (MODEL-VIEW-CONTROLLER),73

■N

Naive metaphor(幼稚隐喻),448-449

Naming(命名)

BOUNDED CONTEXTS,345

conventions for supple design(柔性设计的惯例),247

INTENTION-REVEALING INTERFACES,247

MODULES,110

SERVICES,105

Non-object models(非对象模型),119-122

■O

Object references(对象引用).参见REPOSITORIES.

Objects.参见ENTITIES; VALUE OBJECTS.associations(关联),82-88

creating(创建),234-235.参见constructors; FACTORIES.defining(定义),81-82

designing for relational databases(为关系数据库设计对象),159-161

made up of objects(由对象组成).参见AGGREGATES;COMPOSITE.

Persistent(持久化的),150-151

OBSERVERS,73

Off-the-shelf solutions(现成的解决方案),407

Online banking example(网上银行示例),71-72

OPEN HOST SERVICE,converting to PUBLISHED LANGUAGE,394-396

Outsourcing(外包),408-409

Overbooking examples(超订示例),18-19,222

■P

Packaging(打包).参见deployment; MODULES.

Paint-mixing application(调漆应用程序),examples(示例),247-249,252-254,256-259

Partitioning(划分)

complex programs(复杂程序).参见large-scale structure;LAYERED ARCHITECTURE.

SERVICES into layers,107

Patterns(模式),507-510.参见analysis patterns; design

patterns; large-scale structure.

PCB design anecdote(PCB设计趣闻),7-13,501

Performance tuning(性能优化),example(示例),185-186

Persistent objects(持久的对象),150-151

PLUGGABLE COMPONENT FRAMEWORK,475-479

POLICY pattern(POLICY模式).参见STRATEGY pattern.

Polymorphism(多态),435-437

Presentation layer.参见user interface layer.

Procedural languages(过程语言),and MODEL-DRIVEN DESIGN,51-54

Processes as domain objects(作为领域对象的过程),222-223 Prototypes(原型),238-241

PUBLISHED LANGUAGE

elephant and the blind men(盲人与象),377-381

example(示例),377

merging with OPEN HOST SERVICE(与OPEN HOST SERVICE合并),394-396

overview(概述),375-377

■Q

Quilt project(拼被),479

■R

Reconstitution(重建),145-146,148

Refactoring(重构)

Breakthroughs(突破),193-200

during a crisis(危机之中),325-326

deep models(深层模型),189-191

definition(定义),188

designing for developers(针对开发人员的设计),324

discovery(发现),191-192

distillation(精炼),437

examples(示例),177-179,181-185,194-200,247-249

exploration teams(探索团队),322-323

initiation(开始重构),321-322

large-scale structure(大型结构),481

levels of(„„的层次),188-189

MODULES,110,111

to patterns(模式),188-189

reusing prior art(重用先前的经验),323-324

supple design(柔性设计),191

timing(时机),324-325

Refactoring targets(重构目标),437

Reference objects(引用对象).参见ENTITIES.

REPOSITORIES

advantages(优点),152

architectural frameworks(架构框架),156-157

decoupling from the client(与客户解耦),156

designing objects for relational databases(为关系数据库设计对象),159-161

encapsulation(封装),154

example(示例),172-173

and FACTORIES,157-159

global searches(全局搜索),150-151

implementing(实现),155-156

METADATA MAPPING LAYERS,149

object access(对象访问),149-151

overview(概述),147-152

persistent objects(持久对象),150-151

querying(查询),152-154

references to preexisting domain objects(获取已存在的领域对象的引用),149

transaction control(事务的控制权),156

transient objects(临时对象),149

type abstraction(对类型进行的抽象),155-156

Requirements gathering(需求收集).参见concept analysis;knowledge crunching; UBIQUITOUS LANGUAGE.

RESPONSIBILITY LAYERS

choosing layers(选择层),460-464

example(示例),452-460

overview(概述),450-452

useful characteristics(有用的特征),461

Reusing code (重新使用代码)

BOUNDED CONTEXT,344

GENERIC SUBDOMAINS,412-413

reusing prior art(重用先前的经验),323-324

Risk management(风险管理),413-414

■S

Scenarios(场景),examples(示例),173-177

SEGREGATED CORE,428-434

Selecting objects(选择对象),229-234,269-270

SEPARATE WAYS,384-385,389-391

SERVICES.参见ENTITIES; VALUE OBJECTS.

access to(对„„的访问),108

characteristics of(„„的特征),105-106

granularity(粒度),108

and the isolated domain layer(以及鼓励的领域层),106-107

naming(命名),105

overview(概述),104-105

partitioning into layers(分层),107

SHARED KERNEL

example(示例),359

merging with CONTINUOUS INTEGRATION(与CONTINUOUS

INTEGRATION合并),391-393

merging with SEPARATE WAYS(与SEPARATE WAYS合并),389-391

overview(概述),354-355

Sharing(共享)VALUE OBJECTS,100-101

Shipping examples(货运示例).参见examples,

cargo shipping(货运示例).

Side effects(副作用),250.参见ASSERTIONS.

SIDE-EFFECT-FREE FUNCTIONS,250-254,285-286

Simplifying your design(简化你的设计).参见distillation;large-scale structure; LAYERED ARCHITECTURE.

SMART UI,73

SPECIFICATION.参见analysis patterns; design patterns.

applying(应用),227

business rules(业务规则),225

combining(结合).参见composite SPECIFICATION.

composite(组合),273-281

configuring(配置),226-227

definition(定义),225-226

example(示例),29,235-241,279-282

generating objects(生成对象),234-235

implementing(实现),227

overview(概述),224-227

purpose(目的),227

selecting objects(选择对象),229-234

validating objects(验证对象),227,228-229

Speech(讲话),common language(公共语言).参见UBIQUITOUS LANGUAGE.

Speech(讲话),modeling through(通过„„建模),30-32

STANDALONE CLASSES,265-267

Strategic design(策略设计).参见large-scale structure.assessing the situation(评估现状),490

customer-focused architecture teams(以客户为中心的架构团队),492

developers(开发者),role of(„„的角色),494

essential requirements(基本要求),492-495

evolution(演变),493

EVOLVING ORDER,491

feedback process(反馈过程),493

minimalism(最小化),494-495

multiple development teams(多个开发团队),491

objects(对象),role of(„„的角色),494

setting a strategy(制定策略),490-492

team communication(团队沟通),492

team makeup(团队成员的组成),494

technical frameworks(技术框架),495-497

STRATEGY pattern,19,311-314

Supple design(柔性设计)

approaches to(„„的方法),282-292

ASSERTIONS,255-259

CLOSURE OF OPERATIONS,268-270

composite SPECIFICATION,273-282

CONCEPTUAL CONTOURS,260-264

declarative design(声明式设计),270-272

declarative style of design(声明式设计风格),273-282

domain-specific language(特定于领域的语言),272-273

example(示例),247-249

INTENTION-REVEALING INTERFACES,246-249

Interdependencies(内部依赖),265-267

large-scale structure(大型结构),480-483

naming conventions(命名规范),247

overview(概述),243-245

SIDE-EFFECT-FREE FUNCTIONS,250-254,285-286

STANDALONE CLASSES,265-267

SYSTEM METAPHOR,447-449

System under design(正在设计的系统),385-386

■T

Team context(团队上下文),382

Teams(团队)

choosing a strategy(选择一种策略),382

communication(沟通),large-scale structure(大型结构),482

customer-focused(以客户为中心的),492

defining(定义) BOUNDED CONTEXT,382

developer community(开发者社区),maturity of(„„变得成熟),117-119

exploration(探索),322-323

Teams(团队),and strategic design(以及策略设计)

communication(沟通),492

customer-focused(以客户为中心的),492

developers(开发者),role of(„„的角色),494

makeup of(„„的组成),494

multiple teams(多个团队),491

Teams(团队),multiple(多个)

ANTICORRUPTION LAYER,364-370

CONFORMIST,361-363

CUSTOMER/SUPPLIER,356-360

example(示例),358-360

SHARED KERNEL,354-355,359

strategic design(策略设计),491

Terminology(术语).参见BOUNDED CONTEXT; PUBLISHED LANGUAGE; UBIQUITOUS LANGUAGE.

Testing boundaries(测试边界),351

Transaction control(事物的控制权),156

TRANSACTION SCRIPT,79

Transformations(转换),389

Transforming boundaries(转换边界),382-383

Transient objects(临时对象),149

Translation layers(转换层),374

Tuning a database(优化数据库),example(示例),102

■U

UBIQUITOUS LANGUAGE.参见PUBLISHED LANGUAGE.

analysis patterns(分析模式),306-307

cargo router example(安排货运路线示例),27-30

consistent use of(持续使用„„),32-35

designing objects for relational databases(为关系数据库设计对象),160-161

domain-specific language(领域特定语言),272-273

language of the domain experts(领域专家的语言),206-207 overview(概述),24-27

refining the model(精化模型),30-32

specialized terminologies(专用术语),386-387

requirements analysis,25

speech(讲话),role of(„„的角色),30-32

UML (Unified Modeling Language),35-37

Unification(统一),332.参见CONTINUOUS INTEGRATION.

Unified Modeling Language (UML),35-37

Updating the design(更新设计).参见refactoring.

User interface layer (用户界面层)

business logic(业务逻辑),77

definition(定义),70

separating from application and domain(从应用层和领域层分开),76-79

■V

Validating objects(验证对象),227,228-229

VALUE OBJECTS.参见ENTITIES; SERVICES.

associations(关联),102-103

bidirectional associations(双向关联),102-103

change management(变更管理),101

clustering(聚集).参见AGGREGATES.

designing(设计),99-102

example(示例),167-168

immutability(不变性),100-101

object assemblages(对象集合),98-99

overview(概述),97-99

passing as parameters(作为参数传递„„),99

referencing ENTITIES(引用ENTITY),98-99

sharing(共享),100-101

tuning a database(优化数据库),example(示例),102

Vision statement(前景说明).参见DOMAIN VISION STATEMENT.

Vocabulary(词汇).参见PUBLISHED LANGUAGE; UBIQUITOUS LANGUAGE.

■W

Waterfall design method(瀑布方法),14

Web site bookmark anecdote(网站书签趣闻),57-59