Editing 实现模式‐参考数据异步访问 - CassiniLaw/KnowledgeBase GitHub Wiki

此实现模式是描述参考数据异步访问的实现部分。其中的ClientCompany是一个在系统中经常被其他对象引用的参考对象。FindClientCompanyAsync是其中的某一个方法。 此模式使用了以下实现模式

  • 实现模式‐参考数据同步访问
  • 实现模式‐实体映射

标注方式

classDiagram
namespace Models {
    class ClientCompany {
        +int Id
        +string Name
    }
}

Invoker ..> ClientCompany: 实体异步访问IRigRepository.FindClientCompanyAsync()

Loading

类图

classDiagram
namespace Models {
    class IModel {
        <<interface>>
    }
    class ClientCompany {
        +string Name
    }
}

namespace Entities {
    class Entity {
    }
    class ClientCompanyEntity {
        +string Name
    }
}

namespace Repositories {
    class IRepository {
        <<interface>>
    }
    class IRigRepository {
        <<interface>>
        +Task~ClientCompany~ FindClientCompanyAsync(...)
    }
    class RigRepository {
        +Task~ClientCompany~ FindClientCompanyAsync(...)
    }
}


Invoker ..> IRigRepository 
Invoker ..> ClientCompany

ClientCompany ..|> IModel
ClientCompanyEntity --|> Entity

IRigRepository --|>  IRepository
RigRepository ..|> IRigRepository

IRigRepository ..> ClientCompanyEntity: 参数数据同步访问IClientCompanyService
IRigRepository ..> ClientCompany : 实体映射IMappingService
ClientCompany ..> ClientCompanyEntity : 实体映射MapClientCompanyAsync()

Loading

交互图

sequenceDiagram
participant Invoker

box Repositories
    participant RigRepository
end

box Services
    participant ClientCompanyService
end

box 
    participant ClientCompanyEntity
end

Invoker -) RigRepository : FindClientCompanyAsync()
create participant entity as Entities.ClientCompanyEntity
RigRepository ->> entity : 参数数据同步访问IClientCompanyService
entity -->> RigRepository : Return an instance of Entities.ClientCompanyEntity
create participant model as Models.ClientCompany
RigRepository -) model : 实体映射IMappingService
model --) RigRepository : Async Return and instance of ClientCompany
RigRepository --) Invoker : Async Return and instance of ClientCompany

Loading
⚠️ **GitHub.com Fallback** ⚠️