• DDD 理解



    DDD提倡充血模型,业务放在类中,而不是服务中,刚开始是比较不清楚的。
    突然明白,以前开发桌面程序的时候,不就是这样处理了吗?业务分析和代码实现一一对应。因为桌面程序没有数据库,他就是纯粹的面向对象的实现:类有属性,方法,这些又有有私有,公开之分。
    但是基于CURD的Web程序可不是这样了。首先web程序是无状态的,另外它的大部分动作都是读写数据库。这样,都被零零碎碎的session,数据库之类的搞散了,哪里有面向对象的意思呢?
    我们进一步封装,把那些数据库之类的暂时不考虑,我们的代码直接反映业务。大概这就是框架力量所在

    DDD是设计思想,初学面向对象的人,理解DDD就像,刚开始学面向对象的人一样,存在疑惑,并且疑惑更大。
    这主要是没有经历过软件思维训练。
    他们可能会想:我原来的写法挺好的啊,为什么会出来这么一种设计思想呢?
    那是他们还没遇到业务复杂的情况,或者没有思考过这么改进。
    熟练运用面向对象设计之后,在遇到业务分析,自然的会用面向对象的思路架构。DDD也是这样。


    值对象,就是一个值。在C#的类中,一个string 属性,就是值对象。而一个地址,里面包含了省市县字段(无Id),相当于只是一个复杂的属性,也是值对象。

    DDD是分析业务的方法。就像用面向对象的思想去做项目,和面向过程做项目,最大的差别是视角不同,而不是采用的具体技术。

    C语言也可以用面向对象写代码。不会面向对象的人,用C#也写不出来面向对象的程序。

    气功波(18037675651)
  • 相关阅读:
    hdu_5961_传递(bitset)
    hdu_5963_朋友(找规律)
    hdu_5968_异或密码(预处理+二分)
    hdu_5969_最大的位或(贪心)
    hdu_5965_扫雷(递推)
    hdu_5950_Recursive sequence(矩阵快速幂)
    hdu_5286_wyh2000 and sequence(分块)
    [BZOJ1951][SDOI2005]古代猪文(数论好题)
    [BZOJ2659][WC2012]算不出的算式(几何)
    [BZOJ 2656][ZJOI2012]数列(递归+高精度)
  • 原文地址:https://www.cnblogs.com/qgbo/p/11171549.html
Copyright © 2020-2023  润新知