3.0 KiB
3.0 KiB
source_files, generated_at, model, schema_version, sha256
| source_files | generated_at | model | schema_version | sha256 | ||
|---|---|---|---|---|---|---|
|
2026-04-16T12:17:41.765515+00:00 | zai-org/GLM-5-FP8 | 1 | 857aa9f92afca967 |
Documentation: DTS.Common.Interface (Generic Module)
1. Purpose
This module defines the core abstraction layer for "Generic Modules" within the system, adhering to a View/ViewModel separation pattern. It provides two marker interfaces, IGenericModuleView and IGenericModuleViewModel, which establish a standard contract for module implementations. These interfaces ensure that generic modules derive from the application's foundational base types (IBaseView and IBaseViewModel), enabling polymorphic handling and consistent architecture across the codebase.
2. Public Interface
IGenericModuleView
- Namespace:
DTS.Common.Interface - Inheritance:
IBaseView - Signature:
public interface IGenericModuleView : IBaseView { } - Description: A marker interface intended for View components within a Generic Module. It inherits from
IBaseViewbut defines no additional members.
IGenericModuleViewModel
- Namespace:
DTS.Common.Interface - Inheritance:
IBaseViewModel - Signature:
public interface IGenericModuleViewModel : IBaseViewModel { } - Description: A marker interface intended for ViewModel components within a Generic Module. It inherits from
IBaseViewModelbut defines no additional members.
3. Invariants
- Type Hierarchy: Any class implementing
IGenericModuleViewmust also implementIBaseView(defined inDTS.Common.Base). - Type Hierarchy: Any class implementing
IGenericModuleViewModelmust also implementIBaseViewModel(defined inDTS.Common.Base). - Behavioral Contract: Since neither interface defines methods or properties, the behavioral contract is entirely defined by the parent interfaces (
IBaseViewandIBaseViewModel).
4. Dependencies
- Internal Dependencies:
DTS.Common.Base: Both source files import this namespace to accessIBaseViewandIBaseViewModel.
- Consumers: Unknown from the source alone. These interfaces are likely consumed by classes implementing specific module views and viewmodels, or by navigation/dependency injection infrastructure that resolves generic module types.
5. Gotchas
- Marker Interfaces: Both
IGenericModuleViewandIGenericModuleViewModelare empty "marker" interfaces. They do not expose any specific functionality (properties, methods, or events) themselves. Developers must inspectIBaseViewandIBaseViewModelto understand the actual API surface area required for implementation. - Usage Ambiguity: The source does not specify what constitutes a "Generic Module" versus a standard module. The distinction is likely defined by convention or usage in other parts of the codebase (e.g., specific registration logic or base classes).