索引
索引中的页码为英文原书页码,与本书边栏页码一致。
■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
