Skip to content

dddjava/collections

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

40 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

collections

Set, Sequence, Mapのコレクション演算の参照実装。

仕様を記述するための語彙の試作

ビジネスの関心事をソフトウェア仕様として表現するためのコレクション型とその操作。

JavaのコレクションAPIは、実装や性能を重視した構成になっている。
また、mutableな設計になっている。

仕様記述のための論理性を重視したコレクションAPIを試作する。

  • 集合(順序なし、重複なし)
  • 列(順序あり、重複あり)
  • 写像

設計方針

  • コレクション操作の基本語彙を明示する
  • コレクションに閉じる(引数の型もメソッドの返す型も、コレクションまたはプリミティブ型に閉じる)
  • 不変にする(演算結果は、別のコレクションを返す)
  • コレクション生成はBuilderクラスに分離する(String/StringBuilderの関係)
  • 巨大なコレクション操作を考慮しない

集合

関心を分離するため、三種類の集合型を定義

  • Group : 集合の基本操作(検査、集合演算、filter, map)
  • NumericalGroup : 数値の集合の集約操作 (sum, average, max, min)
  • ReducibleGroup : 単一要素の集合(単集合)へ畳み込む操作(reduce)

参考

コレクション操作の基本語彙の参考仕様

  • VDM++ コレクション
  • Smalltalk コレクションライブり

About

No description, website, or topics provided.

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Languages