デザインパターン
martinfowler.com How It Works Java Implementation When to Use It Further Reading Example: Revenue Recognition (Java) An object model of the domain that incorporates both behavior and data. ビジネスロジックは非常に複雑になりうる オブジェク…
martinfowler.com Transaction Script How It Works When to Use It The Revenue Recognition Problem Example: Revenue Recognition (Java) 英語 Transaction Script Organizes business logic by procedures where each procedure handles a single reques…
martinfowler.com Putting It All Together Starting with the Domain Layer Down to the Data Source Layer Data Source for Transaction Script Data Source for Table Module Data Source for Domain Model The Presentation Layer 英語 Putting It All T…
martinfowler.com Distribution Strategies The Allure of Distributed Objects Remote and Local Interfaces Where You Have to Distribute Working with the Distribution Boundary Interfaces for Distribution 英語 Distribution Strategies 分散コンピ…
martinfowler.com Pattern for Offline Concurrency Control Optimistic Offline Lock Pessimistic Offline Lock Coarse-Grained Lock Implicit Lock 選定 困難 Application Server Concurrency Pattern for Offline Concurrency Control 並列性の問題は、可…
martinfowler.com Transactions ACID Transactonal Resources Reducing Transaction Isolation for Liveness Business and System Transactions Transactions 企業アプリケーションにおける、並列性を取り回す主要な道具 "transaction"という言葉 金銭やモノ…
martinfowler.com Optimistic and Pessimistic Concurrency Control Preventing Inconsistent Reads Deadlocks Optimistic and Pessimistic Concurrency Control 並列制御 楽観ロック ロックしてねえじゃねえかってやつ 言葉として便利だし、広まってしまっ…
martinfowler.com Concurrency Concurrency Problems Execution Contexts Isolation and Immutability Optimistic and Pessimistic Concurrency Control えいご Concurrency 並列性はソフトウェア開発において最も骨の折れる側面のひとつ 複数のスレッドで同…
martinfowler.com Session State The Value of Statelessness Session State Way to Store Session State Session State 同時処理 トランザクションにも2種類ある(ch5) ビジネストランザクション システムトランザクション stateless/stateful sessionに関す…
前章の話 Mapping to Relational Databases Architectural Patterns The Behavioral Problem Reading in Data Structural Mapping Patterns Mapping Relationships Inheritance Building the Mapping Double Mapping Using Metadata Database Connections So…
前章の話 Organizing Domain Logic Transaction Script Domain Model Table Module Making a Choice Service Layer 英語 前章の話 アプリケーションを層分けしろ プレゼンテーション層 ドメイン層 データソース層 Organizing Domain Logic ドメインロジック…
まえがき The Evolution of Layers in Enterprise Applications The Three Principal Layers Choosing Where To Run Your Layers 英語 まえがき レイヤ分けは普遍的 マシンのアーキテクチャ プログラミング言語 on OS on CPU命令セット on 論理ゲート ネット…
Architecture Enterprise Applications Kinds of Enterprise Application Thinking About Performance Patterns The Structure of the Patterns Limitations of These Patterns 英語 Architecture 多くの人が「Architecture」という言葉を定義する 共通点 シ…
まえがきofまえがき Who This Book Is For 英語 まえがきofまえがき エンタープライズアプリケーションは本質的に複雑 例: バックエンド賃貸システム 賃貸同意書がさまざま異なる 契約を勝ち取るためにあれこれ変えるから この本は、複雑性を御するための設…
www.informit.com Isolating the Domain LAYERED STRUCTURE Partitioning Online Banking Functionality into Layers Relating Layers Architectural Frameworks The Domain Layer Is Where The Model Lives THE SMART UI "ANTI-PATTERN" Other Kinds of Iso…
変化するものをカプセル化する 引数としてのオブジェクト 一元管理か分散か リクエストの送信/受信の疎結合化 併用 振る舞いのパターン同士 振る舞いのパターンと他の 英語 変化するものをカプセル化する ここでは「カプセル化する」 = 「同じインターフェー…
ねらい モチベーション つかいどころ 構造 登場人物 クライアントコードからの利用 結果 実装にあたり考えるべきこと Visitをオーバーロードする ダブルディスパッチ オブジェクト構造の走査は誰が行う? 関連するパターン 英語 ねらい あるクラス群(Element…
ねらい つかいどころ 登場人物 結果 実装にあたり考えるべきこと 関連するパターン ねらい アルゴリズムの骨組みを基底クラスで定義 実装を派生クラスにゆだねる つかいどころ クラスを派生してカスタマイズしたい カスタマイズしても変わらない骨組みを共通…
ねらい AKA つかいどころ 構造 オブジェクトの集約版 ジェネリクス版 登場人物 クライアントコードからの利用 結果 実装にあたり考えるべきこと 関連するパターン 英語 ねらい アルゴリズムをカプセル化し、他のアルゴリズムと可換にする アルゴリズム利用側…
ねらい AKA つかいどころ 構造 登場人物 クライアントコードからの利用 結果 実装にあたり考えるべきこと 誰が状態遷移を定義するか テーブルにより遷移を表現する方法 stateオブジェクトの生成・解体のポリシー 動的継承 関連するパターン 英語 ねらい 状態…
ねらい AKA モチベーション つかいどころ 登場人物 クライアントコードからの利用 結果 実装にあたり考えるべきこと 関連するパターン 英語 ねらい 1対多のオブジェクト依存関係において、1のオブジェクトの状態の変更を、多のオブジェクトすべてに自動で通…
ねらい AKA モチベーション つかいどころ 登場人物 クライアントコードからの利用 結果 実装にあたり考えるべきこと 関連するパターン ねらい カプセル化を違反することなく、オブジェクトの内部状態を外部に書き出し、後で再度読み込む AKA Token モチベー…
ねらい モチベーション つかいどころ 構造 登場人物 クライアントコードからの利用 結果 実装にあたり考えるべきこと 関連するパターン ねらい オブジェクトの相互作用をカプセル化するためのオブジェクトを定義する オブジェクトどうしを疎結合にする モチ…
ねらい AKA モチベーション つかいどころ 構造 登場人物 クライアントコードからの利用 実装にあたり考えるべきこと Iteratorの分類 -- External/Internal TODO 走査アルゴリズムをどのクラスに定義するか どれだけ堅牢にするか 走査のメソッドの追加 Iterat…
ねらい モチベーション つかいどころ 登場人物 クライアントコードからの利用 結果 実装にあたり考えるべきこと Compositeとどうちがうの 関連するパターン よくわかんなかったやつ ねらい 言語の文法をクラスの木構造で表現する 抽象構文木(AST: Abstract S…
ねらい AKA モチベーション つかいどころ 登場人物 【補】具体例 クライアントコードからの利用 結果 実装にあたり考えるべきこと 関連するパターン ねらい リクエストをオブジェクトとしてカプセル化 クライアントを異なるリクエストでパラメタライズできる…
ねらい モチベーション つかいどころ 登場人物 クライアントコードからの利用 結果 実装にあたり考えるべきこと 関連するパターン ねらい リクエストの送信者と受信者との密結合をほぐす 1つ以上のオブジェクトにリクエストの処理の機会を与える モチベーシ…
構造のパターンの類似性 AdapterとBridge 共通点 相違点 AdapterとFacade CompositeとDecorator 共通点 相違点 併用 DecoratorとProxy 共通点 相違点 英語 構造のパターンの類似性 登場人物と、クライアントコードからの利用が類似している が、ねらいが全然…
ねらい AKA モチベーション つかいどころ Remote Proxy Virtual Proxy Protection Proxy Smart Reference 登場人物 クライアントコードからの利用 結果 実装にあたり考えるべきこと 言語の機能を使うと幸せになれることも 演算子オーバーロード マジックメソ…
ねらい モチベーション つかいどころ 登場人物 クライアントコードからの利用 結果 実装にあたり考えるべきこと 関連するパターン 英語 ねらい 小さなオブジェクトを大量に利用する際、オブジェクトを共用することで空間を節約する モチベーション クラスの…