データ指向プログラミング

UML

smartdraw-uml.png

汎化/継承 (Generalization/Inheritance)

汎化:

   Vehicle
   /      \
  /        \
 Car    Motorcycle

コンポジション/集約 (Composition/Aggregation)

コンポジション:

 Car <>- Engine
 Car <>- Wheel
 Car <>- Seat
 Car <>- SteeringWheel
  • CarがなければEngineはない
  • EngineがなくてもCarはある(Carは正常に動作しないけれども)

集約:

 University <>-- Student
  • UniversityがなくてもStudentは存在しうる
  • StudentがなくてもUniversityは存在しうる

破線:

  • 使用依存関係
smartdraw-uml-symbols.png

古典的なOOPの問題点

AspectImpact on complexity
Code and data are mixed.Classes tend to be involved in many relations.
Objects are mutable.Extra thinking is needed when reading code.
Objects are mutable.Explicit synchronization is required on multi-threaded environments.
Data is locked in objects.Data serialization is not trivial.
Code is locked in classes.Class hierarchies are complex.
  • 備考
    • Code: 振る舞い。ロジックコードのこと

トップ   編集 凍結 差分 バックアップ 添付 複製 名前変更 リロード   新規 一覧 検索 最終更新   ヘルプ   最終更新のRSS

Last-modified: 2023-07-30 (日) 08:42:35