No more Death March

あるSEのチラシの裏 C# WPF

C# 自作ライブラリの検討メモ

デザインパターンオブジェクト指向エクササイズの教材として自作ライブラリを作ろうと検討中。

名前空間についてメモ


Nmdm
 ⇒最上位の名前空間、ブログ名から

Nmdm.Pair
 ⇒ジェネリックインターフェースで二つのインスタンスのペアを表現

Nmdm.Collection
 ⇒IEnumerableを持つ拡張用インターフェース

Nmdm.Range
 ⇒ジェネリックインターフェースで型の範囲を表現

Nmdm.Comparer
 ⇒.NetのIComparer関連の拡張 インターフェースは不要

基本型を拡張する場合の名前空間(例:string)

Nmdm.String
 ⇒stringインスタンスを持つインターフェースIStringの宣言場所

Nmdm.String.Wrapper
 ⇒基本型のラッパー実装場所

Nmdm.String.Decorator
 ⇒単一のstring型インスタンスで成立する処理をデコレーターパターンで記述、IStringを返す。
  ToWide、ToNarrow、ToUpper 等

Nmdm.String.Comparer
 ⇒IComparerの実装場所

Nmdm.String.Adapter.Length
 ⇒(変換元の型).Adapter.(変換先の型)のルールで変換ロジックをアダプターパターンで記述


Pair、Collection、Rangeなど汎用的なデータ構造は型名の後に名前空間を入れる。
Nmdm.Int.Pair.Adapter.〇〇
 ⇒IPairに関する実装

Nmdm.Int.Range.Decorator.〇〇
 ⇒IRangeに関する実装



基本ルール
・完全コンストラクタパターン
・メソッドをアダプタパターンまたはデコレーターパターンで分離、ミックスインにする。
・処理を実装する箇所では全てのメンバーを使う。
・LengthやCount、Year、Monthといった用途が定まりそうなものは別途インターフェースを設け、IIntなどより抽象的な型に依存させる。