dongyun6835 2015-04-02 08:55
浏览 213

DDD构建一个包含集合属性的值对象

i have a simple question when building a value object that has a collection of value objects inside it with a specific type how do you construct the object ?

to take an example lets say you have a picture that take multiple dimensions

Option 1 :

Class Picture implements valueObject{

    public function __construct(array $dimensions){
        foreach($dimensions as $dimension){
                // check if instance of `dimension` value object
        }
    }
}

Option 2 :

Class Picture implements valueObject{

    public function __construct(DimensionCollection $dimensions){

    }
}

Class DimensionCollection implements Traversable{

    public function add(Dimension $dimension){
        // add to array 
    }
}

Option two off-course seems more logical but is there another pattern that is better taken this from DDD preceptive ?

  • 写回答

2条回答 默认 最新

  • doutenglou6588 2015-04-02 21:00
    关注

    If your Picture VO holds a collection..then I'd name it Pictures or PictureCollection because it will be made of of other Picture objects. (as you did with dimensions).

    Although this is a review matter valueObject interface should be named "ValueObjetct" with a capital "V".

    I think your domain needs a bit of restructuring. If a Picture has Dimensions than Dimension"s" should be a group made of Dimension VOs.

    评论

报告相同问题?

悬赏问题

  • ¥15 微信会员卡接入微信支付商户号收款
  • ¥15 如何获取烟草零售终端数据
  • ¥15 数学建模招标中位数问题
  • ¥15 phython路径名过长报错 不知道什么问题
  • ¥15 深度学习中模型转换该怎么实现
  • ¥15 HLs设计手写数字识别程序编译通不过
  • ¥15 Stata外部命令安装问题求帮助!
  • ¥15 从键盘随机输入A-H中的一串字符串,用七段数码管方法进行绘制。提交代码及运行截图。
  • ¥15 TYPCE母转母,插入认方向
  • ¥15 如何用python向钉钉机器人发送可以放大的图片?