More Related Content
PDF
PDF
PDF
『これからの.NETアプリケーション開発』セミナー .NET用アプリケーション フレームワーク Open 棟梁 概説 PDF
PDF
Open棟梁 社会インフラシステム アーキテクチャの提案 PDF
OSC2018 hiroshima session slide by OSSC PDF
Open棟梁と、さまざまな開発標準とのフィッティング案 PDF
What's hot
PDF
Open 棟梁 @ オープンソースカンファレンス 2015 Nagoya PDF
【de:code 2020】 セキュアなソフトウェアを実現する、GitHub のコード解析のご紹介 PDF
PDF
【de:code 2020】 Build 2020 最新情報 ~コンテナ関連アップデート~ PDF
PDF
【de:code 2020】 Azure Red hat OpenShift (ARO) によるシステムアーキテクチャ構築の実践 PDF
.NET用アプリケーション フレームワーク “Open 棟梁”のオープンソース化について PDF
【de:code 2020】 ハンズオンで学ぶ AI ~ Bot Framework Composer + QnA Maker / Custom Visi... PDF
More from Shinya Okano
PDF
PDF
PDF
PDF
PDF
Python入門 コードリーディング - PyConJP2016 PDF
PDF
Djangoのエントリポイントとアプリケーションの仕組み PDF
Djangoフレームワークの紹介 OSC2015北海道 PPTX
PDF
ODP
PDF
PDF
PDF
PDF
PDF
PDF
mixiアプリ『the Actress』運用にあたっての課題へのチャレンジ Spring4Dの紹介
- 1.
- 2.
- 3.
- 4.
- 5.
- 6.
- 7.
- 8.
- 9.
- 10.
- 11.
- 12.
- 13.
- 14.
- 15.
- 16.
- 17.
依存関係がある場合の欠点
• 再利用しにくい
• 単体テストしにくいTCalculator
uCalculator.pas
TMathService
uMathService.pas
uses uMathService;
service := TMathService.Create;uCalculatorだけをテストしたい
が
uMathServiceも必要となる
TMathServiceを別の処理に差し
替えたいが、uCalculator.pasを
編集しないといけない
- 18.
- 19.
- 20.
- 21.
DIコンテナを利用して
依存関係を除去する
// コンテナから計算処理クラスのインスタンスを
取得
service :=Container.Resolve<IMathService>;
• インターフェースを用
意
• DIコンテナを用意
uServiceLocator.pas
TContainer
uServiceLocator.pas
uServiceLocator.pas
IMathService
uMathServiceIntf.pas
uServiceLocator.pas
TMathService
uMathService.pas
実装クラス登録 インターフェース利
用
• インターフェースを実装
• 実装クラスをコンテナに
登録(依存性の注入)
uServiceLocator.pas
TCalculator
uCalculator.pas
インスタンス取
得
インターフェース利
用
• コンテナから実装クラ
ス(のインスタンス)を
取得
- 22.
- 23.
- 24.
- 25.
- 26.
- 27.
- 28.
- 29.
- 30.
- 31.
参考
• Getting Giddywith Dependency Injection and
Delphi Spring #5 – Delphi Spring Basics
• https://bitbucket.org/sglienke/spring4d
- 32.
- 33.
第7回 Delphi Talks@東京
• 日時: 2014/04/26(土) 13:30 〜 17:30
• 場所: 株式会社ビープラウド 会議室(新宿)
• 参加申込み:
• http://connpass.com/event/6021/
• facebook上のイベント
• MLやフォーラムの案内への返信でもok
- 34.