* データ指向プログラミング [#b1410c55]

** UML [#y104dfae]


*** 汎化/継承 (Generalization/Inheritance) [#yac323c3]
   /      \
  /        \
 Car    Motorcycle

*** コンポジション/集約 (Composition/Aggregation) [#j33af56d]

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

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

- 使用依存関係


** 古典的なOOPの問題点 [#e7b9c9da]

|Aspect|Impact on complexity|h
|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