skillup

技術ブログ

アーキテクト設計全般

値オブジェクトやファーストコレクションなどについて

投稿日:2022年7月14日 更新日:

以前から言葉としては知っていたけれど、オブジェクト思考の重要な概念に関して。

値オブジェクト(Value Object)

業務上で使われる値を数字や文字列などといったプリミティブ型ではなく、制約を持たせたクラスとして持たせること

例としては会員番号などの業務上特定の意味を持つ文字列や番号などに付けるのが最適

  • 型やサイズなど値の判定をインスタンス生成時に行うことができる
  • 値の正常性を担保でき、不整合な値などはインスタンス生成時に排除することができる
  • 生の値に直でアクセスせず、制約を付けることでイレギュラーな挙動を制御できる
  • 業務での関心事とソースの構造の粒度を合わせることができる
  • セットした値は基本変更しないことで制約を強くすることができる
  • 少し近い概念としてENUMなど

ファーストコレクション(コレクションオブジェクト)

主に計算系の処理(ECでの計算などに関して)に関してその値に対しての処理を1つのクラス内でまとめて処理すること

  • データに対する操作に対しての制約を付けることができる
  • データに対する操作の責務を一任できる
  • コレクションを不変にして外部に渡すことであるクラスの挙動を一任できる
  • 外からアクセスできないようにすることで値の有効性を担保できる

現場で役立つシステム設計の原則

ファーストクラスコレクションとは【デザインパターン】

 

-アーキテクト設計全般
-

執筆者:


comment

メールアドレスが公開されることはありません。 * が付いている欄は必須項目です

関連記事

no image

マイクロサービスについて

マイクロサービスについて勉強したので少しメモを。 参考文献 Software Design 「2020年1月」 Contents1 マイクロサービスとは?1.1 具体例1.1.1 フロントエンドとバッ …

no image

オブジェクト指向について その1

ちょっと最近、仕事でソースの書き方がいい加減になってきたのでオブジェクト指向について考え方を再確認しようと思います。 参考文献 SoftWareDesign 2015年9月号 何も考えずにプログラムを …

no image

アプリケーション間のデータの連携方法に関して

以前やった「現場で役立つシステム設計の原則」を再読してます。 今、読んでいるのはアプリ間のデータ連携に関して。 複数のアプリ間でデータをやり取りする場合、以下のような方法が考えられます。 ファイルを直 …

no image

オブジェクト指向設計 依存関係の管理

オブジェクト指向シリーズ。読みにくい本が多い中でオブジェクト指向設計実践ガイドは勉強になるなー。 Contents1 依存関係の管理1.1 メモ1.2 実際のコーディング上のコツ1.3 感想 依存関係 …

no image

オブジェクト指向 クラスの設計と業務ロジックの整理

本日も引き続き「現場で役立つシステム設計の原則」を読み進めてます。 本日は主にクラスの作り方について。 Contents1 クラス設計と業務ロジック1.1 要点1.2 感想 クラス設計と業務ロジック …

アーカイブ