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

以下部分由元元方生成,代码不允许修改。

此实现模式是描述参考数据实现数据访问和存储的实现部分。其中的ClientCompany是一个在系统中经常被其他对象引用的参考对象。Find是其中的某一个方法。

标注方式

classDiagram
namespace Entities {
    class ClientCompanyEntity {
        <<Reference>>
        +string Name
    }
}

Invoker ..> ClientCompanyEntity : 参考数据同步访问IClientCompanyService.Find()

Loading

类图

classDiagram
namespace Entities {
    class ClientCompanyEntity {
        <<Reference>>
        +string Name
    }
}

namespace Services {
    class ServiceFactory {
        +ServiceFactory Intance$
        +Register(IService)
        +IService Get(Type)
    }
    class IService {
        <<interface>>
    }
    class IClientCompanyService {
        <<interface>>
        +ClientCompanyEntity Find(...)
        
    }
    class ClientCompanyService {
        +ClientCompanyEntity Find(...)
    }
}

namespace Daos {
    class DaoFactory {
        +DaoFactory Intance$
        +Register(IDao)
        +IDao Get(Type)
    }
    class IDao {
        <<interface>>
    }
    class IClientCompanyDao {
        <<interface>>
        +ClientCompanyEntity Find(...)
    }
    class ClientCompanyDao {
        +ClientCompanyEntity Find(...)
    }
}

direction RL

Invoker ..> ServiceFactory
Invoker ..> IService

ServiceFactory ..> IService
IClientCompanyService --|>  IService
ClientCompanyService ..|> IClientCompanyService

DaoFactory ..> IDao
IClientCompanyDao --|>  IDao
ClientCompanyDao ..|> IClientCompanyDao

ClientCompanyService ..> DaoFactory

IClientCompanyService ..> ClientCompanyEntity
IClientCompanyDao ..> ClientCompanyEntity

Loading

交互图

sequenceDiagram
participant Invoker

box Services
    participant ServiceFactory.Instance
    participant ClientCompanyService
end

box Daos
    participant DaoFactory.Instance
    participant ClientCompanyDao
end

box Rntities
    participant ClientCompanyEntity
end
opt If IClientCompanyService == null
    Invoker ->> ServiceFactory.Instance : Get(IClientCompanyService)
    ClientCompanyService -->> Invoker : Return and instance of IClientCompanyService
end
Invoker ->> ClientCompanyService : Find()
ClientCompanyService ->> DaoFactory.Instance : Get(IClientCompanyDao)
ClientCompanyDao -->> ClientCompanyService : Return and instance of IClientCompanyDao
ClientCompanyService ->> ClientCompanyDao : Find()
ClientCompanyEntity -->> ClientCompanyService : Return and instance of ClientCompanyEntity
ClientCompanyService -->> Invoker : Return and instance of ClientCompanyEntity

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