67 lines
3.3 KiB
Markdown
67 lines
3.3 KiB
Markdown
|
|
---
|
||
|
|
source_files:
|
||
|
|
- Common/DTS.CommonCore/Interface/SystemSettings/PowerAndBattery/IPowerAndBatteryView.cs
|
||
|
|
- Common/DTS.CommonCore/Interface/SystemSettings/PowerAndBattery/IPowerAndBatteryViewModel.cs
|
||
|
|
generated_at: "2026-04-16T12:26:11.956445+00:00"
|
||
|
|
model: "zai-org/GLM-5-FP8"
|
||
|
|
schema_version: 1
|
||
|
|
sha256: "a788360f54c0a8e6"
|
||
|
|
---
|
||
|
|
|
||
|
|
# Documentation: Power and Battery View/ViewModel Interfaces
|
||
|
|
|
||
|
|
## 1. Purpose
|
||
|
|
|
||
|
|
This module defines two marker interfaces, `IPowerAndBatteryView` and `IPowerAndBatteryViewModel`, which serve as type contracts for the Power and Battery settings feature within the system. These interfaces follow the Model-View-ViewModel (MVVM) architectural pattern, providing type identity and polymorphic compatibility with the base view/viewmodel infrastructure while remaining empty to allow implementation-specific flexibility.
|
||
|
|
|
||
|
|
---
|
||
|
|
|
||
|
|
## 2. Public Interface
|
||
|
|
|
||
|
|
### `IPowerAndBatteryView`
|
||
|
|
**Signature:**
|
||
|
|
```csharp
|
||
|
|
public interface IPowerAndBatteryView : IBaseView { }
|
||
|
|
```
|
||
|
|
**Location:** `DTS.Common.Interface` namespace
|
||
|
|
|
||
|
|
**Behavior:** An empty marker interface that extends `IBaseView`. It imposes no additional members beyond those inherited from `IBaseView`. Implementations represent the UI layer for power and battery configuration.
|
||
|
|
|
||
|
|
---
|
||
|
|
|
||
|
|
### `IPowerAndBatteryViewModel`
|
||
|
|
**Signature:**
|
||
|
|
```csharp
|
||
|
|
public interface IPowerAndBatteryViewModel : IBaseViewModel { }
|
||
|
|
```
|
||
|
|
**Location:** `DTS.Common.Interface` namespace
|
||
|
|
|
||
|
|
**Behavior:** An empty marker interface that extends `IBaseViewModel`. It imposes no additional members beyond those inherited from `IBaseViewModel`. Implementations represent the presentation logic and state for power and battery configuration.
|
||
|
|
|
||
|
|
---
|
||
|
|
|
||
|
|
## 3. Invariants
|
||
|
|
|
||
|
|
- Both interfaces must always inherit from their respective base types (`IBaseView` and `IBaseViewModel`).
|
||
|
|
- The contracts defined by `IBaseView` and `IBaseViewModel` (not visible in these source files) must be fulfilled by any implementing class.
|
||
|
|
- The namespace `DTS.Common.Interface` groups these interfaces with other system interfaces.
|
||
|
|
|
||
|
|
**Note:** Specific invariants regarding member requirements cannot be determined from these source files alone, as both interfaces are empty marker interfaces delegating all contracts to their parent types.
|
||
|
|
|
||
|
|
---
|
||
|
|
|
||
|
|
## 4. Dependencies
|
||
|
|
|
||
|
|
### This module depends on:
|
||
|
|
- `DTS.Common.Base` — Provides `IBaseView` and `IBaseViewModel` base interfaces
|
||
|
|
|
||
|
|
### What depends on this module:
|
||
|
|
**Cannot be determined from source alone.** Consumers would include concrete View and ViewModel implementations for the Power and Battery settings feature, as well as any registration, navigation, or dependency injection configuration that references these interfaces.
|
||
|
|
|
||
|
|
---
|
||
|
|
|
||
|
|
## 5. Gotchas
|
||
|
|
|
||
|
|
- **Empty marker interfaces:** Both interfaces define no members of their own. All behavior contracts come from `IBaseView` and `IBaseViewModel`. Developers implementing these interfaces must consult the base interface definitions to understand required members.
|
||
|
|
- **Naming inconsistency:** The folder path (`SystemSettings/PowerAndBattery/`) suggests a hierarchical organization, but the namespace flattens to `DTS.Common.Interface`. This may cause confusion when locating related types.
|
||
|
|
- **No explicit coupling:** There is no compile-time enforcement linking `IPowerAndBatteryView` to `IPowerAndBatteryViewModel`. The relationship is implied by naming convention only.
|