Editing 实现模式‐参考数据异步访问 - CassiniLaw/KnowledgeBase GitHub Wiki
此实现模式是描述参考数据异步访问的实现部分。其中的ClientCompany是一个在系统中经常被其他对象引用的参考对象。FindClientCompanyAsync是其中的某一个方法。 此模式使用了以下实现模式
- 实现模式‐参考数据同步访问
- 实现模式‐实体映射
classDiagram
namespace Models {
class ClientCompany {
+int Id
+string Name
}
}
Invoker ..> ClientCompany: 实体异步访问IRigRepository.FindClientCompanyAsync()
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()
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