自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(15)
  • 收藏
  • 关注

原创 第九章 将隐式概念转变为显式概念(二)

9.2 如何为那些不太明显的概念建模面向对象范式会引导我们去寻找和创造特定类型的概念。所有事物(即使是像“应计费用”这种非常抽象的概念)及操作行为是大部分对象模型的主要部分。他们就是面向对象设计入门书籍所讲到的“名词和动词”。9.2.1 显式的约束约束是模型概念中非常重要的类型,它们通常是隐含的,将他们现实的表现出来可以极大的提高代码质量。如果约束的存在掩盖了对象的基本职责,或者如果约束在领域中非常突出但在模型中却不明显,那么就可以将其提取到一...

2021-10-25 20:53:23 224

原创 第七章 使用语言:一个扩展的示例

7.1货物运输系统简介(1)这里讲到了一个货物运输的实例,最初需求包括三个功能: ·跟踪货物主要处理 ·事先预约货物 ·货物到达处理过程中某个位置时,自动发送客户发票对此的设计模型中可以分为以下几个对象:(1)Handling Event 处理事件 (2)Delivery Specification 运送规格 (3)Customer (4)Carrier Movement (5)Delivery History 运送历史7.2 隔离领域:引入应...

2021-09-23 11:40:09 201

原创 第九章 将隐式概念转变为显式概念

若开发人员识别出设计中隐含的某个概念或是在讨论中受到启发而发现的一个概念的时候,就会对领域驱动和相应的代码进行许多的转换,在模型中加入一个或多个对象的关系,从而讲概念显式的表达出来。这个过程就是将业务转变为代码的过程。首先我们要对客户进行深刻的聆听,了解客户所表达的真实意图,领会客户想要通过特定的术语表达的东西,这才是聆听的重要性。要学会使用一些简单的语言表达出专业上的术语,让领域专家可以理解,如果开发人员和领域专家在使用设计中没有共同语言的时候,这就是一个严重问题的预警。通...

2021-09-21 21:37:13 235

原创 第八章 突破

重构是为了让事情逐步变得有序,这个过程要对代码进行优化,对领域知识进行学习消化,每次微小的重构带来的是对事务更加清晰地认知,在一系列小的重构过程中会逐渐的汇聚形成深层模型。一个例子首先我们针对银行贷款做了一个简单的模型,模型包括信贷、贷款、投资以及贷款投资四个部分,逻辑简单的来说就是信贷支持贷款者贷款的资金,通过借款还款来控制信贷的额度。 经过发展,模型逐渐的暴露出一些令人担忧的迹象。通过对借贷业务的理解,我们发现提取贷款资金的时...

2021-09-21 21:16:23 135

原创 第三部分 通过重构来加深理解

我们面临的真正挑战是找到深层次的模型。深层次的模型其中内含深刻的业务逻辑,挖掘出深层次的模型对于我们搭建模型有至关重要的作用。我们最终的目的是捕捉领域深层含义的模型。我们要保证设计出的软件更符合领域专家的思维方式,软件不仅仅只是一个工具,更重要的是在目的业务活动中发挥真正的作用。开发使用的模型需要具备的特点:1)复杂巧妙的领域模型是可以实现的,也值得我们花力气去实现的。2)任何模型都需要不断地重构去完善的,重构不仅仅是对代码层面的深入学习更应该需要领域专家和热爱领域相关知识,来对业务进一步的

2021-09-21 20:48:55 157

原创 第六章 领域对象的生命周期

## 第六章 领域对象的生命周期**背景** 每个对象都有生命周期,对象自创建后,可能会经历各种不同的状态,直至最终消亡——要么存档要么删除。**主要挑战有以下两类:**(1)在整个生命周期中,维护完整性。(2)防止模型陷入管理生命周期复杂性造成的困境当中。**解决之道:** 聚合(Aggregate),工厂(Factory),存储(Repository),使用工厂来创建复杂对象和聚合,封装内部结构,在生命周期末尾使用存储。## 6.1 模式:AGGREGATE**问题:**...

2021-09-05 10:59:19 213

原创 《领域驱动设计》 第五章 软件所表示的模型(5.4 5.5 5.6)

模式:Service有时,对象不是一个事物。有些重要的领取操作是无法放到Entity或ValueObject中,因为操作本质上是一种动作,不是事务的一些具体体现,因为我们要划分相关领域范式,所以需要将这些相关的动作或者操作划分到这个对象中。我们常见的错误是将一些不合适的动作强行的和对象融合在一起。有些service名称看起来是模型对象,但是对于实际业务上没有任何关联性。一些领域概念不适合以对象的形式去建模,去掉认为操作去增加无意义的模型。service强调的是对象与动作的关系。领域驱

2021-08-30 21:46:33 207

原创 《领域驱动设计》第五章 软件中所表示的模型

如何处理好具体模型选择与实现问题的关系,模型的设计和关联的简化是非常重要的。本章着重区分表示模型元素的三种模式:Entity|、ValueObject、Service。5.1 关联 模型选择与问题实现之间的交互之所以如此复杂,是受对象之间存在各种复杂的关联。对象之间的关联包括:一对一、一对多、多对多;如何使关联更易于控制,包括以下三种方式:(1)规定一个遍历方向。(2)添加一个限定符以便有效的减少多重关联。(3)消除不必要的关联 举例说明:美国的总统...

2021-08-25 14:22:04 146

原创 《领域驱动设计》第四章 分离领域

分离领域的复杂技术早已出现,而且都是我们耳熟能详的,但是他对于能否成功运用领域建模原则起着非常关键的作用,所以我们要从领域驱动的视角对它进行简要的回顾。4.1 模式:LAYERED ARCHITECTURE(分层体系结构)分层:用户界面层负责向用户显示信息和解释用户指令。这里指的用户可以是另一个计算机系统,不一定是使用用户界面的人应用层定义软件要完成的任务,并且指挥表达领域概念的对象来解决问题。应用层要尽量简单,不包含业务规则或者知识领域层负责表达业务概念,业...

2021-08-15 19:16:29 180

原创 《领域驱动设计》第三章 绑定模型和实现

3.1 模式:MODEL-DRIVEN DESIGN

2021-08-14 10:53:32 166

原创 《领域驱动设计》第二章 交流与语言使用

模式 UBIQUTOUS LANGUAGEUBIQUTOUS书上的翻译是通用语言,而在Google上的意思是无处不在的。想要创造一种灵活的、蕴含丰富知识的设计,需要一种通用的、共享的团队语言,以及对语言不断地试验--------然而,软件项目上很少出现这样的试验。而我觉得无处不在的更贴近这个词语在领域驱动中的含义,它存在于领域驱动专家与程序员之间的沟通,他存在与团队内部的沟通,他在这个领域中无处不在的充当桥梁的角色。通用语言表现为通用性。他应该想英语一样充当‘国际语言’的角色,领域专家说出来

2021-08-05 23:21:22 148

原创 《领域驱动设计》第一章 消化知识

通过文章中作者针对PCB电路板相关项目中的开发沟通过程中, 使我领会到。收集领域中各种元素,通过与业务专家沟通中去学习到这类元素,在这个过程中去学习业务相关知识。

2021-08-05 22:56:28 108

原创 《领域驱动设计》 第一部分 运用领域模型

模型是用来绘制人们所关注的现实或想法的某个方面,模型是一种简化,它是对现实的解释----把与解决问题密切相关的方面抽象出来,而忽略无关的细节。 模型是我们开发软件项目中需要重点关注的点,我们做一套财务系统,我们不需要完全成为一个财务人员学习完善的财会知识,我们注重的应该是财务系统流程依托于软件要解决的问题,以及这个流程周围的相关知识,而不必要去学习那些与此无关的知识。 我们开发的大多数软件领域与计算机的关系都不大。 领域建模不会完全符合’...

2021-08-01 22:17:02 127

原创 《领域驱动设计》序章 学习心得

项目怎样开发才能确保成功?什么软件才能提供价值?什么团队才是优秀团队?这是序章中提出的问题,也是《领域驱动设计》一书最终的意义。这些问题是我们工作中最常遇到的问题也是我们最难回答的问题,从项目立项到最后的项目上线,我们在这个过程中必须要做到哪些点,才能最终保证工作成功。入手点排除大多数的外在因素,在大多数项目中应该做到两点。1.主要焦点应该是领域和领域逻辑。2.复杂的领域设计应该基于模型。 对于领域和领域逻辑的理解上,我认为他们接近于我们所常说的‘业务’,更准确的应该..

2021-07-28 17:07:23 131

原创 c# 静态变量与静态函数

静态变量 首先,在c#中没有全局变量这个概念,所以想要使用某个成员变量的时候只有实现该类的实例才能操作这个成员变量的数据.但是有些时候需要多次使用变量,就会出现多次实例的糟糕现象。这个时候,静态变量就可以很好地实现我们所想要的。   静态变量的生命周期   静态变量时常驻内存的变量,它的生命周期是从初始化开始一直到Application结束。 静态变量的声明方式如下 ...

2018-07-30 10:06:16 1681

空空如也

空空如也

TA创建的收藏夹 TA关注的收藏夹

TA关注的人

提示
确定要删除当前文章?
取消 删除