标签: domain-driven-design

关于相关对象的DDD建议(C#)

关于这个问题我很关注.保存与对象或对象关系集合相关的ID集合更好.我也计划使用存储库方法.这就是我的意思:

public class Person
{
     string PersonName {get; set;}
     List<PersonFriend> PersonFriends {get; set;}
{

or...

public class Person
{
     string PersonName {get; set;}
     List<int> PersonFriendIds {get; set;}
{
Run Code Online (Sandbox Code Playgroud)

c# domain-driven-design

0
推荐指数
1
解决办法
160
查看次数

NHibernate - 领域驱动设计 - 业务规则问题

我有一个员工在一个集合中拥有多个地址.

public class Employee
{
    public string Name { get; set; }

    public AddressCollection Addresses { get; }
}


public class AddressCollection : IEnumerable<Address>
{
    private readonly Employee employee;
    private IList<Address> items = new List<Address>();

    public void AddAddress(Address address)
    {
        if (items.Contains(address)) return;

        address.Employee = employee;
        items.Add(address);
    }

    public void RemoveAddress(Address address)
    {
        items.Removce(address);
    }

    /// further IEnumerable implementations
}

public class Address
{
    public AddressType Type { get; set; }
    public City City { get; set; }
    public string …
Run Code Online (Sandbox Code Playgroud)

.net nhibernate design-patterns domain-driven-design

0
推荐指数
1
解决办法
756
查看次数

域模型是否按定义不可变?

也就是说,是否存在域模型应该可以在其创建之外进行修改的情况?

domain-driven-design

0
推荐指数
1
解决办法
218
查看次数

域驱动设计建模查询

我正在构建一个新的应用程序,并且是Domain Driven Design的新手.我一直在阅读文档,我已经设法模拟了大部分领域模型,但我想对两个查询提出一些建议:

  1. 我有两个域对象通道和程序.我已将这两者建模为实体,因为两者都可以独立访问.一个频道可以有一个节目列表,所以我把它作为频道的属性.我的查询是如何填充程序列表.是否可以使ChannelService中的getChannerById方法首先获取通道信息,然后调用ProgramService获取通道的程序列表,例如:

    Channel {
      String channelId
      List <Program> programList
    }
    
    Program {
      String programId {
    }
    
    ChannelService {
       Channel getChannelById(String channelId)
    }
    
    ProgramService {  
       Program getProgramById(String programId)
       List <Program> getProgramsByChannelById(String channelId)  
    }
    
    Run Code Online (Sandbox Code Playgroud)
  2. 我有一个产品域对象,但它的一些属性(例如规范和兼容性)涉及相当耗时的操作.这些属性并不是一直需要的,因此可以将这些属性作为域对象的一部分,并且在需要时具有填充这些属性的单独服务方法,例如

    Product {
        String productId
        Specification specification
        List <Product> compatibleProducts
    }
    
    ProductService {
        Product getProduct(String productId);
        void getProductSpecifications(Product product);
        void getCompatibleProducts(Product product);
    }
    
    Run Code Online (Sandbox Code Playgroud)

任何建议将非常感谢.

domain-driven-design

0
推荐指数
1
解决办法
1147
查看次数

在以下模型中,地址不应该是值对象吗?

值对象如何存储在数据库中?:

假设公司和个人都有相同的邮件地址.哪些陈述确实有效?

   1."如果我修改Company.Address,我希望Person.Address自动获取这些更改"

   2."如果我修改Company.Address,它不得影响Person.Address"

如果1为真,则Address应为实体

如果2为真,则Address应为值对象.

不应该在上面的模型中邮件Address是一个Value Object,因为即使Company并且Person有相同的邮件,这个邮件仍然没有概念身份?

换句话说,如果最初CompanyPerson分享initial.address@gmail.com,然后获得新邮件new.address@gmail.com,那么我们可以争辩说邮件地址 initial.address@gmail.com本身没有改变,而是CompanyPersonnew.address@gmail.com替换它?

因此,根据我的理解,一个Address共享的事实应该不足以赋予它个性(即身份)?!

谢谢

entity domain-driven-design value-objects

0
推荐指数
1
解决办法
198
查看次数

实现大型集合实体而不将数据加载到内存中

我正在使用addImage($ imageId),removeImage($ imageId),getImages($ from,$ count)等方法实现一个实体UserImages.

Phisycally,存储在应用程序级存储中的数据(图像ID集合),提供了很好的功能,如addItem($ keyName,$ item,$ weight),removeItem($ keyName,$ item),getItems($ key, $ from,$ count).

如何使模型使用DDD风格的外部(看起来形成域)存储,而无需引用UserImages实体的存储?重要的是,我不想将所有集合从存储加载到实体,正如传统方法所假设的那样.

希望我对问题提供了很好的解释,如果没有,请告诉我.非常感谢你的帮助.

domain-driven-design

0
推荐指数
1
解决办法
334
查看次数

PHP中的域驱动设计架构

在具有如下文件夹结构的PHP DDD应用程序中:

app/
    views/
    controllers/
    domain/
        models/ ( orm generated )           
        services/
        factories/  

以下类将代表什么(从DDD术语的角度来看)以及它们的推荐位置.

  • 字典(基本功能:检查单词是否有效)
  • HtmlValidator(基本功能:检查字符串是否是有效的html)
  • UserCollection(基本功能:对用户集合的操作)

  • php domain-driven-design

    0
    推荐指数
    1
    解决办法
    1161
    查看次数

    其中实现模式规范

    假设这个用例:

    我希望从今年3月到7月之间购买波士顿的顾客.

    有了DDD

    1. 直接在封装在对象中的UI中使用规范来驱动它.
    2. 在域中实现不同的get方法以在每个用例中回答.
    3. 直接在UI中使用规范

    我应该使用巫婆实施?

    architecture design-patterns domain-driven-design specifications

    0
    推荐指数
    1
    解决办法
    103
    查看次数

    我应该避免使用聚合根吗?

    问题

    有四个实体:

    class Product : Entity<Product> {
        public virtual String Title { get; set; }
        public virtual Category Category { get; set; }
        public virtual Vendor Vendor { get; set; }
    }
    
    class Category : Entity<Category> { /* properties */ }
    class Vendor : Entity<Vendor> { /* properties */ }
    
    Run Code Online (Sandbox Code Playgroud)

    这四个都没有定义为组件,我不知道应该使用哪一个(用IAggregateRoot接口标记)作为聚合根.

    我需要轻松访问供应商列表,类别以在创建新产品时在页面上显示它们.

    然后看来Repository根据这些实体应该有三个实例.

    在旁边

    我见过几个大型项目.他们大量使用Vendor,State,TechnicalOptions等独立实体的列表.我认为设计具有聚合根的东西是合乎逻辑的,但我不知道DDD原则是否适用于那里.

    c# nhibernate domain-driven-design

    0
    推荐指数
    1
    解决办法
    201
    查看次数

    EntityFramework CodeFirst中的有界上下文

    我已经搜索了大量关于有界上下文的内容,我知道它是域驱动设计中的一种模式,它是使用数据库上下文将我们的大型模型划分为更小的模型,但这让我有点混乱.事实上我不知道它到底是做什么的?使用这种模式有什么好处
    请帮助我理解这种模式.

    domain-driven-design entity-framework ef-code-first bounded-contexts

    0
    推荐指数
    1
    解决办法
    2359
    查看次数