zoukankan      html  css  js  c++  java
  • 领域驱动设计-入门

    领域驱动设计围绕着对象进行设计,类似于传统的OO,但是还是不同的。

    传统的OO更像是贫血的领域对象,它具有数据,很多get set方法,但是缺少业务逻辑。客户端使用时,需要进行一大串的set操作。举个栗子:

    image

    这种方式中customer是一个贫血的领域对象,客户端必须进行很多的set,最后调用dao进行保存。

    ---------------

    那么,怎样才是不贫血的领域对象呢?主要看两点:boundedcontext,通用领域语言。

    领域对象是通过通用领域语言进行描述的,通用语言是领域专家和开发人员通用的语言。

    -----------

    使用通用语言是什么样的呢?假设一个护士给一个病人打疫苗的case,护士先算好量,再进行注射。有3种实现方式:不使用领域对象,粗糙的使用领域对象,正确的使用领域对象。如下图所示:

    image

    我们看到使用领域对象可读性是最好的。简而言之,领域对象的编程语言就是让领域专家,非程序员能读懂我们的代码。并且能看出系统的问题。

    -------------

    DDD的3个挑战:需要时间创建通用语言;需要领域专家支持;开发者需要改变思维方式。

    ------------------

    DDD的实现方式和TDD类似:

    1. 模拟客户的代码;
    2. 创建领域对象使得测试通过;
    3. 重构直到领域对象的方法名表明了业务含义;
    4. 实现行为;
    5. 给领域专家展示;

    最后领域专家可以通过阅读代码来理解程序。

  • 相关阅读:
    手机领域的各种角色介绍
    windows配置教程
    windows7安装教程(vmware)
    /etc/profile、~/.bash_profile、~/.bashrc和/etc/bashrc
    vmware自定义网段
    wps去除首字母自动大写
    Windows和Linux创建软链接和硬链接
    计算机的组成部件及其厂商
    windows开机锁定小键盘
    PL/SQL Developer安装教程
  • 原文地址:https://www.cnblogs.com/alphablox/p/5309030.html
Copyright © 2011-2022 走看看