デザインパターン23種
の編集
https://erion1107-pukiwiki.erion1107.net/?%E3%83%87%E3%82%B6%E3%82%A4%E3%83%B3%E3%83%91%E3%82%BF%E3%83%BC%E3%83%B323%E7%A8%AE
[
トップ
] [
編集
|
差分
|
バックアップ
|
添付
|
リロード
] [
新規
|
一覧
|
単語検索
|
最終更新
|
ヘルプ
]
-- 雛形とするページ --
kiji-template
2018年度学習計画メモ
20180217-01-オフラインインストール発表用メモ
Ansible構成例
AWS認定ソリューションアーキテクト・アソシエーション認定テスト対策
bashコーディング規約
BracketName
CentOS7で自宅サーバー作成勉強用リスト
CentOS 7とSamba4で自宅用Active Directory Domain Controller (AD DC)を構築する① インストール編
CloudflareとLet’s EncryptでWebサイトをHTTPS化
COBOLプログラミング入門
conoHaAPIまとめ
Docker-Command一覧
DockerCommandCheatSheet
Docker_Cmd_List
ERION1107-mywiki
erion1107-mywiki
ERION1107自分用のwiki
ESXiインストールについて
FontPage
FormattingRules
FPGAのアーキテクチャとソフトエラー起因の可用性低下
FrontPage
F#EntryForWeb
F#入門
Help
IaC for Ansible with Windows OS
Install_Redmine3.4_with_CentOS7.3
InterWiki
InterWikiName
InterWikiSandBox
Java-Struts2導入について
JavaSwingコンポーネント
Java入門
Java入門2
Linux 標準教科書に出てくるコマンドリスト
matplotlib-円グラフの作成メモ
MBSAについて
MenuBar
Non-BlockingIOを使ってみよう-Java編
PHP
PowerShell入門
PukiWiki
PukiWiki/1.4
PukiWiki/1.4/Manual
PukiWiki/1.4/Manual/Plugin
PukiWiki/1.4/Manual/Plugin/A-D
PukiWiki/1.4/Manual/Plugin/E-G
PukiWiki/1.4/Manual/Plugin/H-K
PukiWiki/1.4/Manual/Plugin/L-N
PukiWiki/1.4/Manual/Plugin/O-R
PukiWiki/1.4/Manual/Plugin/S-U
PukiWiki/1.4/Manual/Plugin/V-Z
pukiwiki記法の書き方入門
python-code-memo
re-view入門
RecentDeleted
SandBox
SoftEther VPN for Linuxについて
SoftEtherVPNについて
Spring解体新書メモ
SQL_Entry
StudyCentOSForWebSiteBuild
Tips作業メモ
UML
UNIXコマンド
Using_Prism.Unity_with_WPF
Vagrant入門
VivlioStyleで行こう!
VPNのススメ
WikiEngines
WikiName
WikiWikiWeb
WindowsPhone開発のためのPrism+ReactiveProperty基本
WindowsとLinuxのオフラインインストールについて調べてみた
WindowsとLinuxのオフラインインストールについて調べてみた 2
wireshark
WSL(Windows Subsystem for Linux)の基本Memo
yaml-sample
YAMLを覚えよう
YukiWiki
ZABBIX
■Redmine On Docker
お仕事用メモ
はじめてのアプリ発注
アプリ開発後に行う動作テストについて
カタン戦術論
デザインパターン23種
プレゼン発表のコツ
レンタルサーバーに独自SSL「Let's Encrypt」導入(Windows10編)
個人アプリ開発のメモ
勉強会発表用メモ
自分用のpukiwiki
記憶術メモ
[[デザインパターン23種]] * デザインパターン INDEX [#a3eb2ce1] #contents * 0. デザインパターンの基本 [#fd33f1d4] ** 0.1 はじめに [#efcbb488] ** 0.2 デザインパターンとは [#wd02d2f7] ** 0.3 デザインパターンのメリット [#xde252c5] ** 0.4 設計への利用について [#u7834a9d] * 1. Iterator パターン [#kb0fda94] ** Itaratorパターンとは [#b4623751] ** サンプルケース [#eed29da0] ** 実習課題1 [#j8d737ff] ** 実習課題2 [#m338c5e6] ** 実習課題3 [#oaffdb1a] ** Iterator パターンのまとめ [#r6e6ccd4] Iteratorパターンは集約オブジェクトの種類や実装に依存しない、統一的な走査方法を提供したいような場合に利用するとよい * 2. Adapter パターン [#z463af4a] ** Adapter パターンとは [#i4cbdda6] ** サンプルケース1(継承を利用した Adapter パターン) [#reb59a0a] ** サンプルケース2(委譲を利用した Adapter パターン) [#yaa1d4a3] ** Adapter パターンのまとめ [#jb755147] Adapter パターンは利用したいインタフェースを強制的に変えたいような場合に利用するとよい Adapter パターンの実現方法は2つあり、継承を利用したものと委譲を利用したもの * 3. TemplateMethod パターン [#wa990a92] ** TemplateMethod パターン [#zf328ece] ** サンプルケース [#mc6a63b1] ** TemplateMethod パターンのまとめ [#d8e5e8f2] TemplateMethod パターンでは、処理のアルゴリズムのみを定め、その処理の具体的な実装は、そのサブクラスに任せています。処理の大枠の手順に変更がない場合 TemplateMethod パターンの利用価値が高くなる TemplateMethod パターンを利用することで、継承先のクラスが間違いなく必要処理のひな型を実装することができる * 4. FactoryMethod パターン [#pc783609] ** FactoryMethod パターン [#m73400bf] ** サンプルケース [#k0d5bb0c] ** FactoryMethod パターンのまとめ [#o4a5db68] TemplateMethodパターンを例にとると、必要な処理を抽象化させることで、必要な処理の実相は義務付け、なおかつ処理の実相方法に幅を持たせることができる * 5. Singleton パターン [#db75df86] ** Singleton パターン [#v155c796] ** サンプルケース [#zcfc945b] ** Singleton パターンのまとめ [#ed59329a] インスタンスの単一実装の宣言ができる 利用ケースは多いが、インスタンスの単一実装は強い制限となるため、実装には注意が必要 * 6. Prototype パターン [#i1968330] ** Prototype パターン [#l8f4fe24] ** サンプルケース [#jba8c9d8] ** Prototype パターンのまとめ [#d016a72e] プロトタイプ * 7. Builder パターン [#j2bf8784] ** Builder パターン [#c525bd1a] ** サンプルケース [#cecb6c20] ** Builder パターンのまとめ [#z0d15039] * 8. AbstractFactory パターン [#g44744fd] ** AbstractFactory パターン [#pc96af38] ** サンプルケース [#pa7f6cb2] ** AbstractFactory パターンのまとめ [#r734ed7d] * 9. Bridge パターン [#me31a202] ** Bridge パターン [#d2665427] ** サンプルケース [#j0475398] ** Bridge パターンのまとめ [#k56ed394] * 10. Strategy パターン [#wbffe0fe] ** Strategy パターン [#d09a1c70] ** サンプルケース [#s2df48ce] ** Strategy パターンのまとめ [#o4f67713] * 11. Composite パターン [#nf85349f] ** Composite パターン [#l1124192] ** サンプルケース [#j805ad3f] ** Composite パターンのまとめ [#y5ca8f09] * 12. Decorator パターン [#scf0ff1a] ** Decorator パターン [#v423c78f] ** サンプルケース [#df8d2f76] ** Decorator パターンのまとめ [#s641b548] * 13. Visitor パターン [#qd5c89b3] ** Visitor パターンとは [#yf9df8c7] ** サンプルケース [#f4225dbd] ** Visitor パターンのまとめ [#b77c6ed7] * 14. ChainOfResponsibility パターン [#ra301569] ** ChainOfResponsibility パターン [#j9865aab] ** サンプルケース [#cf60f9af] ** ChainOfResponsibility パターンのまとめ [#v129e2d7] * 15. Facade パターン [#jfbf52dd] ** Facade パターン [#vdc6fe14] ** サンプルケース [#td26f501] ** Facade パターンのまとめ [#ne71fabb] * 16. Mediator パターン [#y89d6a47] ** Mediator パターン [#z6c4482d] ** サンプルケース [#ef09d42d] ** Mediator パターンのまとめ [#l4f89d47] * 17. Observer パターン [#r4a67f34] ** Observer パターン [#db4f19ba] ** サンプルケース [#y679f396] ** Observer パターンのまとめ [#p6e2474d] * 18. Memento パターン [#k23ac3f6] ** Memento パターン [#kf52311f] ** サンプルケース [#h551c589] ** Memento パターンのまとめ [#fd2181c7] Memento パターンは、「思い出」を残して、ある状態を再現することを目的としたパターン Memento インスタンスに残す情報は、利用目的に応じて決定 俗にいうスナップショット * 19. State パターン [#y645f808] ** State パターン [#m7cd62b1] ** サンプルケース [#pad9a49a] ** State パターンのまとめ [#r46dc0e0] オブジェクトの「状態」を保持するクラス 効率よく使用することで、条件分岐を少なくすることができる * 20. Flyweight パターン [#x8313176] ** Flyweight パターン [#ha6163a4] ** サンプルケース [#zf8ed0d3] ** Flyweight パターンのまとめ [#na3eef27] Flyweight パターンは、無駄なインスタンスを生成を防ぎ、共有することでリソースを無駄なく使う * 21. Proxyパターン [#i7428435] ** Proxy パターン [#o7109693] ** サンプルケース [#j9fd8b14] ** Proxy パターンのまとめ [#m8e19e11] Proxyの意味は「代理人」 ミラーリングのように本体と同一の情報を保持することで、代理処理が可能になる * 22. Command パターン [#xf135746] ** Command パターン [#r07209fa] ** サンプルケース [#r60c38d5] ** Command パターンのまとめ [#v8370145] MVVMのcommandパターンと同じ 参照先のオブジェクトに対しての要求をオブジェクトとして関数の引数に持たせて、参照先のオブジェクトに渡す * 23. Interpreter パターン [#mf5977c4] ** Interpreter パターン [#de5ff352] ** サンプルケース [#t48913a5] ** Interpreter パターンのまとめ [#b877f9b8] * Reference [#s17c2480] [[TECHSCOREデザインパターン:http://www.techscore.com/tech/DesignPattern/index.html/]]
タイムスタンプを変更しない
[[デザインパターン23種]] * デザインパターン INDEX [#a3eb2ce1] #contents * 0. デザインパターンの基本 [#fd33f1d4] ** 0.1 はじめに [#efcbb488] ** 0.2 デザインパターンとは [#wd02d2f7] ** 0.3 デザインパターンのメリット [#xde252c5] ** 0.4 設計への利用について [#u7834a9d] * 1. Iterator パターン [#kb0fda94] ** Itaratorパターンとは [#b4623751] ** サンプルケース [#eed29da0] ** 実習課題1 [#j8d737ff] ** 実習課題2 [#m338c5e6] ** 実習課題3 [#oaffdb1a] ** Iterator パターンのまとめ [#r6e6ccd4] Iteratorパターンは集約オブジェクトの種類や実装に依存しない、統一的な走査方法を提供したいような場合に利用するとよい * 2. Adapter パターン [#z463af4a] ** Adapter パターンとは [#i4cbdda6] ** サンプルケース1(継承を利用した Adapter パターン) [#reb59a0a] ** サンプルケース2(委譲を利用した Adapter パターン) [#yaa1d4a3] ** Adapter パターンのまとめ [#jb755147] Adapter パターンは利用したいインタフェースを強制的に変えたいような場合に利用するとよい Adapter パターンの実現方法は2つあり、継承を利用したものと委譲を利用したもの * 3. TemplateMethod パターン [#wa990a92] ** TemplateMethod パターン [#zf328ece] ** サンプルケース [#mc6a63b1] ** TemplateMethod パターンのまとめ [#d8e5e8f2] TemplateMethod パターンでは、処理のアルゴリズムのみを定め、その処理の具体的な実装は、そのサブクラスに任せています。処理の大枠の手順に変更がない場合 TemplateMethod パターンの利用価値が高くなる TemplateMethod パターンを利用することで、継承先のクラスが間違いなく必要処理のひな型を実装することができる * 4. FactoryMethod パターン [#pc783609] ** FactoryMethod パターン [#m73400bf] ** サンプルケース [#k0d5bb0c] ** FactoryMethod パターンのまとめ [#o4a5db68] TemplateMethodパターンを例にとると、必要な処理を抽象化させることで、必要な処理の実相は義務付け、なおかつ処理の実相方法に幅を持たせることができる * 5. Singleton パターン [#db75df86] ** Singleton パターン [#v155c796] ** サンプルケース [#zcfc945b] ** Singleton パターンのまとめ [#ed59329a] インスタンスの単一実装の宣言ができる 利用ケースは多いが、インスタンスの単一実装は強い制限となるため、実装には注意が必要 * 6. Prototype パターン [#i1968330] ** Prototype パターン [#l8f4fe24] ** サンプルケース [#jba8c9d8] ** Prototype パターンのまとめ [#d016a72e] プロトタイプ * 7. Builder パターン [#j2bf8784] ** Builder パターン [#c525bd1a] ** サンプルケース [#cecb6c20] ** Builder パターンのまとめ [#z0d15039] * 8. AbstractFactory パターン [#g44744fd] ** AbstractFactory パターン [#pc96af38] ** サンプルケース [#pa7f6cb2] ** AbstractFactory パターンのまとめ [#r734ed7d] * 9. Bridge パターン [#me31a202] ** Bridge パターン [#d2665427] ** サンプルケース [#j0475398] ** Bridge パターンのまとめ [#k56ed394] * 10. Strategy パターン [#wbffe0fe] ** Strategy パターン [#d09a1c70] ** サンプルケース [#s2df48ce] ** Strategy パターンのまとめ [#o4f67713] * 11. Composite パターン [#nf85349f] ** Composite パターン [#l1124192] ** サンプルケース [#j805ad3f] ** Composite パターンのまとめ [#y5ca8f09] * 12. Decorator パターン [#scf0ff1a] ** Decorator パターン [#v423c78f] ** サンプルケース [#df8d2f76] ** Decorator パターンのまとめ [#s641b548] * 13. Visitor パターン [#qd5c89b3] ** Visitor パターンとは [#yf9df8c7] ** サンプルケース [#f4225dbd] ** Visitor パターンのまとめ [#b77c6ed7] * 14. ChainOfResponsibility パターン [#ra301569] ** ChainOfResponsibility パターン [#j9865aab] ** サンプルケース [#cf60f9af] ** ChainOfResponsibility パターンのまとめ [#v129e2d7] * 15. Facade パターン [#jfbf52dd] ** Facade パターン [#vdc6fe14] ** サンプルケース [#td26f501] ** Facade パターンのまとめ [#ne71fabb] * 16. Mediator パターン [#y89d6a47] ** Mediator パターン [#z6c4482d] ** サンプルケース [#ef09d42d] ** Mediator パターンのまとめ [#l4f89d47] * 17. Observer パターン [#r4a67f34] ** Observer パターン [#db4f19ba] ** サンプルケース [#y679f396] ** Observer パターンのまとめ [#p6e2474d] * 18. Memento パターン [#k23ac3f6] ** Memento パターン [#kf52311f] ** サンプルケース [#h551c589] ** Memento パターンのまとめ [#fd2181c7] Memento パターンは、「思い出」を残して、ある状態を再現することを目的としたパターン Memento インスタンスに残す情報は、利用目的に応じて決定 俗にいうスナップショット * 19. State パターン [#y645f808] ** State パターン [#m7cd62b1] ** サンプルケース [#pad9a49a] ** State パターンのまとめ [#r46dc0e0] オブジェクトの「状態」を保持するクラス 効率よく使用することで、条件分岐を少なくすることができる * 20. Flyweight パターン [#x8313176] ** Flyweight パターン [#ha6163a4] ** サンプルケース [#zf8ed0d3] ** Flyweight パターンのまとめ [#na3eef27] Flyweight パターンは、無駄なインスタンスを生成を防ぎ、共有することでリソースを無駄なく使う * 21. Proxyパターン [#i7428435] ** Proxy パターン [#o7109693] ** サンプルケース [#j9fd8b14] ** Proxy パターンのまとめ [#m8e19e11] Proxyの意味は「代理人」 ミラーリングのように本体と同一の情報を保持することで、代理処理が可能になる * 22. Command パターン [#xf135746] ** Command パターン [#r07209fa] ** サンプルケース [#r60c38d5] ** Command パターンのまとめ [#v8370145] MVVMのcommandパターンと同じ 参照先のオブジェクトに対しての要求をオブジェクトとして関数の引数に持たせて、参照先のオブジェクトに渡す * 23. Interpreter パターン [#mf5977c4] ** Interpreter パターン [#de5ff352] ** サンプルケース [#t48913a5] ** Interpreter パターンのまとめ [#b877f9b8] * Reference [#s17c2480] [[TECHSCOREデザインパターン:http://www.techscore.com/tech/DesignPattern/index.html/]]
テキスト整形のルールを表示する