SlideShare a Scribd company logo
1 of 53
Download to read offline
1
デザインパターン
概要
 デザインパターンについて学習します。
 いくつかのデザインパターンについて、演習やサンプルを用いて
学習していきます。
2
デザインパターン
 デザインパターンとは
一言でいうと、オブジェクト指向の中でも利用性の高い設計パター
ンのことです。
クラスライブラリやフレームワークの中でよく使用されています。
デザインパターンを知ることで、
拡張性・保守性の高いシステム設計を行うことができます。
また、フレームワークやクラスライブラリの理解が深まります。
3
デザインパターン
 GoFの23デザインパターン
• AbstractFactory パターン
• Adapter パターン
• Bridge パターン
• Builder パターン
• ChainOfResponsibility パターン
• Command パターン
• Composite パターン
• Decorator パターン
• Facade パターン
• FactoryMethod パターン
• Flyweight パターン
• Interpreter パターン
• Iterator パターン
4
デザインパターン
 GoFの23デザインパターン
• Mediator パターン
• Memento パターン
• Observer パターン
• Prototype パターン
• Proxyパターン
• Singleton パターン
• Strategy パターン
• State パターン
• TemplateMethod パターン
• Visitor パターン
この中からいくつかピックアップして学習します。
5
Template Method
パターン
6
Template Methodパターン
 Template Methodパターン
• 抽象クラスに共通の処理(テンプレートメソッド)を記述します。その
処理の中で使用されている抽象メソッドの実装を継承先に任せるデザイ
ンパターンです。
• メリットは、機能拡張の際に影響が少なくなることです。
• 新しい機能を追加したい場合に、抽象クラスを継承した新しいクラスを
作成すればよいので、他に影響を与えずに拡張が可能です。
7
Template Methodパターン
 Template Methodパターンのクラス図
8
Template Methodパターン
 Template Methodパターンのクラス図(サンプル)
9
Template Methodパターン
 Template Methodパターンのサンプルコード(Java)
10
public abstract class ファイル取込 {
public abstract void データチェック();
public abstract void データ登録();
public void データ取込() {
// ファイルオープン
データチェック();
データ登録();
// ファイルクローズ
}
}
public class CSV取込
extends ファイル取込 {
@Override
public void データチェック() {
// チェック処理
}
@Override
public void データ登録() {
// 登録処理
}
}
Strategyパターン
11
Strategyパターン
 Strategyパターン
• Strategyとは戦略という意味です。
• アルゴリズムを柔軟に変更することができるデザインパターンです。
• Strategyのインターフェースを用意し、それを実装したクラスにアルゴリ
ズムを記述します。
• 別のアルゴリズムを増やしたいときは、インターフェースを実装したク
ラスを増やせばいいので、他のクラスに影響を与えず、機能を追加する
ことができます。
12
Strategyパターン
 Strategyパターンのクラス図
13
Strategyパターン
 Strategyパターンのクラス図(サンプル)
14
Strategyパターン
 Strategyパターンのサンプルコード
15
public interface ソート {
int[] ソート(int[] nums);
}
public class バブルソート
implements ソート{
@Override
public int[] ソート(int[] nums) {
// バブルソートの処理
}
}
public class 商品リスト {
private ソート s;
private int[] prices = {120, 100, 300};
public void 並び替え() {
s = new バブルソート();
prices = s.sort(prices);
}
}
Factoryパターン
• Factory Methodパターン
• Abstract Factoryパターン
16
Factoryパターン
 Factoryパターン
• Factoryは工場という意味です。
• インスタンス生成用の専用クラス(Factory)を作成し、使用者はそのク
ラス経由でインスタンスを取得します。
• 簡単に言うとソースコード上から「new」というキーワードをなくすため
のデザインパターンです。
• GoFのデザインパターンの中では、Factoryに関するパターンは
「Factory Methodパターン」と「Abstract Factoryパターン」に分かれてい
ます。
17
Factoryパターン
 Factory Methodパターン
• Factory Methodパターンは、インスタンスの生成をサブクラスに任せる
(インスタンス生成の処理にTemplate Methodパターンを適用してい
る)パターンです。
18
Factoryパターン
 Factory Methodパターンのクラス図
19
Factoryパターン
 Factory Methodパターンのクラス図(サンプル)
20
Factoryパターン
 Factory Methodパターンのサンプルコード
21
public class PCFactory {
// ファクトリーメソッド
public static PC create(String name) {
switch (name) {
case "Mac":
return new Mac();
case "Lenovo":
return new Lenovo();
}
return null;
}
}
public class ユーザー{
public void play(){
PC pc = PCFactory("Mac");
pc.起動();
// pcを使用した処理
}
}
Singletonパターン
22
Singletonパターン
 Singletonパターン
• singletonとは、トランプの一枚札のことです。
• インスタンスが一つしかないことを保証するときに使用するデザインパ
ターンです。
• 具体的な実装方法は
• 自身のクラスの変数をprivate final のフィールドとして定義する。
• コンストラクタをprivateにし、外部からのインスタンス作成を不可にする。
• staticメソッドで、自身のインスタンスを返する。
23
Singletonパターン
 Singletonパターンのクラス図
24
Singletonパターン
 Singletonパターンのサンプルコード
25
public class Singleton {
// シングルトン
private static final Singleton s = new Singleton();
// コンストラクタ
private Singleton(){
}
// インスタンス取得用メソッド
public static Singleton getInstance() {
return s;
}
}
Stateパターン
26
Stateパターン
 Stateパターン
• stateは状態という意味です。
• 「状態」をクラスで表現し、オブジェクトの状態によって動作が変更さ
れる場合に使用します。
• クラス図を見ると、Strategyパターンと似ていることが分かります。
• Strategyパターンでは、振る舞いに注目してクラスを分けましたが、
Stateパターンでは状態に着目する点が異なっています。
27
Stateパターン
 Stateパターンのクラス図
28
Stateパターン
 Stateパターンのクラス図(サンプル)
29
Stateパターン
 Stateパターンのサンプルコード
30
public abstract class 会員ステータス {
public abstract 会員ステータス アップグレード();
public abstract 会員ステータス ダウングレード();
public abstract int 支払い費用取得();
}
public class 会員 {
private 会員ステータス status;
public int 支払い費用取得() {
return status.支払い費用取得();
}
// …
}
Stateパターン
 Stateパターンのサンプルコード
31
public class 有料会員 extends 会員ステータス{
@Override
public 会員ステータス アップグレード() {
return new ゴールド会員();
}
@Override
public 会員ステータス ダウングレード() {
return new 無料会員();
}
@Override
public int 支払い費用取得() {
return 1000;
}
}
Decoratorパターン
32
Decoratorパターン
 Decoratorパターン
• decorateは「飾り付け」という意味の単語です。
• オブジェクトに対してどんどん飾り付けを実施して、機能を追加してい
くパターン。
• java.ioパッケージでも使用されている。
33
Decoratorパターン
 Decoratorパターンのクラス図
34
Decoratorパターン
 Decoratorパターンのクラス図(サンプル)
35
Decoratorパターン
 Decoratorパターンのサンプルコード
36
public abstract class ラーメン {
public abstract int 料金取得();
}
public class 味噌ラーメン extends ラーメン {
@Override
public int 料金取得() {
return 800;
}
}
Decoratorパターン
 Decoratorパターンのサンプルコード
37
public abstract class トッピング extends ラーメン {
protected ラーメン ramen;
public トッピング(ラーメン ramen) {
this.ramen = ramen;
}
}
public class チャーシュー extends トッピング {
@Override
public int 料金取得(){
return super.ramen.料金取得 + 100;
}
}
Decoratorパターン
 Decoratorパターンのサンプルコード
38
public static void main(String[] args) {
ラーメン ra = new チャーシュー(new 味噌ラーメン);
ra.料金取得();
}
Decoratorパターン
 DecoratorパターンはJavaの標準ライブラリでも使用されている
• ファイル入出力に関連するクラスがあるJava.io内でのクラスの使用例
• テキストやバイトを1つずつ読み取る処理に、BuffredReaderによって効
率よく読み込めるようにしている。
39
FileReader fileReader = new FileReader(new File("file.txt"));
BufferedReader bufferedReader = new BufferedReader(fileReader);
InputStream fileStream = new FileInputStream("file.txt");
Reader reader = new InputStreamReader(fileStream);
BufferedReader bufferedReader = new BufferedReader(reader);
Compositeパターン
40
Compositeパターン
 Compositeパターン
• Compositeは「複合」という意味を持ちます。
• コンピュータで作業をするとき、作業ごとに「フォルダ(ディレクト
リ)」を作成して作業します。フォルダの中にはさらに別のフォルダを
作成して、入れ子構造にすることができます。
• コンピュータの中のフォルダのような、再帰的な入れ子構造をオブジェ
クトで表現するとに使用されるのがCompositeパターンです。
41
Compositeパターン
 Compositeパターンのクラス図
42
Compositeパターン
 Compositeパターンのサンプル
43
Adapterパターン
44
Adapterパターン
 Adapterパターン
• adaptは「適応する」という意味の単語です。
• adapterは「適応させるもの」という意味。
• PCのAC(電源)アダプターは、PCの電圧を家庭用の電源の電圧に適応
させています。
• Adapterパターンは、「すでに提供されているもの」と、「それを必要と
するもの」をうまく組み合わせるときに使用されるパターンです。
45
Adapterパターン
 Adapterパターンのクラス図
46
Adapterパターン
 Adapterパターンのサンプル
47
Iteratorパターン
48
Iteratorパターン
 Iteratorパターン
• iterateは「繰り返す」という意味の単語です。
• iteratorは日本語では「反復子」とも呼ばれます。
• インスタンスの集合に対して、それを順番に指し示しながら処理してい
くときに使用されるパターンです。
• java標準のライブラリでは、Listの要素を拡張for文で取得する場合や、
DBから取得したデータをResultSetのオブジェクトから取得する際などに
利用されています。
49
Iteratorパターン
 Iteratorパターンのクラス図
50
まとめ
51
まとめ
 オブジェクト指向の仕組みと本質を理解して、良さを活かせるよ
うに設計すれば、自然とどれかのパターンに該当することも多い。
 デザインパターンを覚えるのではなく、オブジェクト指向を理解
して、その特性をうまく活かすように意識することが大事。
 自分で設計することよりも、クラスライブラリやフレームワーク
の中で使われているものを使用することの方が多い。どのデザイ
ンパターンが使用されているかを意識してみましょう。
52
まとめ
 デザインパターンはここで紹介したもの以外でも色々あるので、
興味を持った人は自分で勉強してみて下さい。
 参考文献
「Java言語で学ぶデザインパターン入門」著:結城 浩
53

More Related Content

What's hot

[論文紹介] Convolutional Neural Network(CNN)による超解像
[論文紹介] Convolutional Neural Network(CNN)による超解像[論文紹介] Convolutional Neural Network(CNN)による超解像
[論文紹介] Convolutional Neural Network(CNN)による超解像Rei Takami
 
[NDC08] 최적화와 프로파일링 - 송창규
[NDC08] 최적화와 프로파일링 - 송창규[NDC08] 최적화와 프로파일링 - 송창규
[NDC08] 최적화와 프로파일링 - 송창규ChangKyu Song
 
テストの視点からのモデリング(公開用) #wacate
テストの視点からのモデリング(公開用) #wacateテストの視点からのモデリング(公開用) #wacate
テストの視点からのモデリング(公開用) #wacateKinji Akemine
 
[C++ Korea 2nd Seminar] Ranges for The Cpp Standard Library
[C++ Korea 2nd Seminar] Ranges for The Cpp Standard Library[C++ Korea 2nd Seminar] Ranges for The Cpp Standard Library
[C++ Korea 2nd Seminar] Ranges for The Cpp Standard LibraryDongMin Choi
 
関東CV勉強会20140802(Face Alignment at 3000fps)
関東CV勉強会20140802(Face Alignment at 3000fps)関東CV勉強会20140802(Face Alignment at 3000fps)
関東CV勉強会20140802(Face Alignment at 3000fps)tackson5
 
Dsi lec4
Dsi lec4Dsi lec4
Dsi lec4ggmo86
 
NDC2017 언리얼엔진4 디버깅 101 - 게임 기획자, 프로그래머가 버그와 만났을 때 사용할 수 있는 지침들
NDC2017 언리얼엔진4 디버깅 101 - 게임 기획자, 프로그래머가 버그와 만났을 때 사용할 수 있는 지침들NDC2017 언리얼엔진4 디버깅 101 - 게임 기획자, 프로그래머가 버그와 만났을 때 사용할 수 있는 지침들
NDC2017 언리얼엔진4 디버깅 101 - 게임 기획자, 프로그래머가 버그와 만났을 때 사용할 수 있는 지침들영욱 오
 
oTreeまとめ 基礎からwebへのアップまで
oTreeまとめ 基礎からwebへのアップまでoTreeまとめ 基礎からwebへのアップまで
oTreeまとめ 基礎からwebへのアップまでKeiko Mizuno
 
熱傷ショック期の抗凝固療法について
熱傷ショック期の抗凝固療法について熱傷ショック期の抗凝固療法について
熱傷ショック期の抗凝固療法についてYuichi Kuroki
 
確率モデルを使ったグラフクラスタリング
確率モデルを使ったグラフクラスタリング確率モデルを使ったグラフクラスタリング
確率モデルを使ったグラフクラスタリング正志 坪坂
 
объект хандлагат программчлал
объект хандлагат программчлалобъект хандлагат программчлал
объект хандлагат программчлалBatzorigt Rentsen
 
20141220 tokyowebmining state_spacemodel
20141220 tokyowebmining state_spacemodel20141220 tokyowebmining state_spacemodel
20141220 tokyowebmining state_spacemodelKenny ISHIMURA
 
리얼타임 렌더링에 대해
리얼타임 렌더링에 대해리얼타임 렌더링에 대해
리얼타임 렌더링에 대해필성 권
 
2019年度 若手技術者向け講座 デザインパターン 演習問題
2019年度 若手技術者向け講座 デザインパターン 演習問題2019年度 若手技術者向け講座 デザインパターン 演習問題
2019年度 若手技術者向け講座 デザインパターン 演習問題keki3
 
C++20 Coroutine
C++20 CoroutineC++20 Coroutine
C++20 Coroutine진화 손
 
バイタルサイン症例1
バイタルサイン症例1バイタルサイン症例1
バイタルサイン症例1ShoMyo
 
온라인 게임에서 사례로 살펴보는 디버깅 in NDC2010
온라인 게임에서 사례로 살펴보는 디버깅 in NDC2010온라인 게임에서 사례로 살펴보는 디버깅 in NDC2010
온라인 게임에서 사례로 살펴보는 디버깅 in NDC2010Ryan Park
 
抗がん剤中止をどうやって患者さんに伝えればよいか?Web版
抗がん剤中止をどうやって患者さんに伝えればよいか?Web版抗がん剤中止をどうやって患者さんに伝えればよいか?Web版
抗がん剤中止をどうやって患者さんに伝えればよいか?Web版Noriyuki Katsumata
 
[DL輪読会]Real-Time Semantic Stereo Matching
[DL輪読会]Real-Time Semantic Stereo Matching[DL輪読会]Real-Time Semantic Stereo Matching
[DL輪読会]Real-Time Semantic Stereo MatchingDeep Learning JP
 

What's hot (20)

[論文紹介] Convolutional Neural Network(CNN)による超解像
[論文紹介] Convolutional Neural Network(CNN)による超解像[論文紹介] Convolutional Neural Network(CNN)による超解像
[論文紹介] Convolutional Neural Network(CNN)による超解像
 
[NDC08] 최적화와 프로파일링 - 송창규
[NDC08] 최적화와 프로파일링 - 송창규[NDC08] 최적화와 프로파일링 - 송창규
[NDC08] 최적화와 프로파일링 - 송창규
 
Sw203 Lecture7 Method Override
Sw203 Lecture7  Method OverrideSw203 Lecture7  Method Override
Sw203 Lecture7 Method Override
 
テストの視点からのモデリング(公開用) #wacate
テストの視点からのモデリング(公開用) #wacateテストの視点からのモデリング(公開用) #wacate
テストの視点からのモデリング(公開用) #wacate
 
[C++ Korea 2nd Seminar] Ranges for The Cpp Standard Library
[C++ Korea 2nd Seminar] Ranges for The Cpp Standard Library[C++ Korea 2nd Seminar] Ranges for The Cpp Standard Library
[C++ Korea 2nd Seminar] Ranges for The Cpp Standard Library
 
関東CV勉強会20140802(Face Alignment at 3000fps)
関東CV勉強会20140802(Face Alignment at 3000fps)関東CV勉強会20140802(Face Alignment at 3000fps)
関東CV勉強会20140802(Face Alignment at 3000fps)
 
Dsi lec4
Dsi lec4Dsi lec4
Dsi lec4
 
NDC2017 언리얼엔진4 디버깅 101 - 게임 기획자, 프로그래머가 버그와 만났을 때 사용할 수 있는 지침들
NDC2017 언리얼엔진4 디버깅 101 - 게임 기획자, 프로그래머가 버그와 만났을 때 사용할 수 있는 지침들NDC2017 언리얼엔진4 디버깅 101 - 게임 기획자, 프로그래머가 버그와 만났을 때 사용할 수 있는 지침들
NDC2017 언리얼엔진4 디버깅 101 - 게임 기획자, 프로그래머가 버그와 만났을 때 사용할 수 있는 지침들
 
oTreeまとめ 基礎からwebへのアップまで
oTreeまとめ 基礎からwebへのアップまでoTreeまとめ 基礎からwebへのアップまで
oTreeまとめ 基礎からwebへのアップまで
 
熱傷ショック期の抗凝固療法について
熱傷ショック期の抗凝固療法について熱傷ショック期の抗凝固療法について
熱傷ショック期の抗凝固療法について
 
確率モデルを使ったグラフクラスタリング
確率モデルを使ったグラフクラスタリング確率モデルを使ったグラフクラスタリング
確率モデルを使ったグラフクラスタリング
 
объект хандлагат программчлал
объект хандлагат программчлалобъект хандлагат программчлал
объект хандлагат программчлал
 
20141220 tokyowebmining state_spacemodel
20141220 tokyowebmining state_spacemodel20141220 tokyowebmining state_spacemodel
20141220 tokyowebmining state_spacemodel
 
리얼타임 렌더링에 대해
리얼타임 렌더링에 대해리얼타임 렌더링에 대해
리얼타임 렌더링에 대해
 
2019年度 若手技術者向け講座 デザインパターン 演習問題
2019年度 若手技術者向け講座 デザインパターン 演習問題2019年度 若手技術者向け講座 デザインパターン 演習問題
2019年度 若手技術者向け講座 デザインパターン 演習問題
 
C++20 Coroutine
C++20 CoroutineC++20 Coroutine
C++20 Coroutine
 
バイタルサイン症例1
バイタルサイン症例1バイタルサイン症例1
バイタルサイン症例1
 
온라인 게임에서 사례로 살펴보는 디버깅 in NDC2010
온라인 게임에서 사례로 살펴보는 디버깅 in NDC2010온라인 게임에서 사례로 살펴보는 디버깅 in NDC2010
온라인 게임에서 사례로 살펴보는 디버깅 in NDC2010
 
抗がん剤中止をどうやって患者さんに伝えればよいか?Web版
抗がん剤中止をどうやって患者さんに伝えればよいか?Web版抗がん剤中止をどうやって患者さんに伝えればよいか?Web版
抗がん剤中止をどうやって患者さんに伝えればよいか?Web版
 
[DL輪読会]Real-Time Semantic Stereo Matching
[DL輪読会]Real-Time Semantic Stereo Matching[DL輪読会]Real-Time Semantic Stereo Matching
[DL輪読会]Real-Time Semantic Stereo Matching
 

Similar to 2019年度 若手技術者向け講座 デザインパターン

2018年度 若手技術者向け講座 デザインパターン
2018年度 若手技術者向け講座 デザインパターン2018年度 若手技術者向け講座 デザインパターン
2018年度 若手技術者向け講座 デザインパターンkeki3
 
設計/原理 【クラウドアプリケーションのためのオブジェクト指向分析設計講座 第28回】
設計/原理 【クラウドアプリケーションのためのオブジェクト指向分析設計講座 第28回】設計/原理 【クラウドアプリケーションのためのオブジェクト指向分析設計講座 第28回】
設計/原理 【クラウドアプリケーションのためのオブジェクト指向分析設計講座 第28回】Tomoharu ASAMI
 
Cedec2012 ai-contest-design-patterns-principles
Cedec2012 ai-contest-design-patterns-principlesCedec2012 ai-contest-design-patterns-principles
Cedec2012 ai-contest-design-patterns-principlesHironori Washizaki
 
静的モデル(1) 【クラウドアプリケーションのためのオブジェクト指向分析設計講座 第4回】
静的モデル(1) 【クラウドアプリケーションのためのオブジェクト指向分析設計講座 第4回】静的モデル(1) 【クラウドアプリケーションのためのオブジェクト指向分析設計講座 第4回】
静的モデル(1) 【クラウドアプリケーションのためのオブジェクト指向分析設計講座 第4回】Tomoharu ASAMI
 
設計/コンポーネント設計(3) 【クラウドアプリケーションのためのオブジェクト指向分析設計講座 第22回】
設計/コンポーネント設計(3) 【クラウドアプリケーションのためのオブジェクト指向分析設計講座 第22回】設計/コンポーネント設計(3) 【クラウドアプリケーションのためのオブジェクト指向分析設計講座 第22回】
設計/コンポーネント設計(3) 【クラウドアプリケーションのためのオブジェクト指向分析設計講座 第22回】Tomoharu ASAMI
 
【アシアル塾】PHPオブジェクト指向再入門・第四回デザインパターンに学ぶクラス設計
【アシアル塾】PHPオブジェクト指向再入門・第四回デザインパターンに学ぶクラス設計【アシアル塾】PHPオブジェクト指向再入門・第四回デザインパターンに学ぶクラス設計
【アシアル塾】PHPオブジェクト指向再入門・第四回デザインパターンに学ぶクラス設計アシアル株式会社
 
デザインパターン
デザインパターンデザインパターン
デザインパターンgaaupp
 
ソフトウェア工学2023 05 モデリング
ソフトウェア工学2023 05 モデリングソフトウェア工学2023 05 モデリング
ソフトウェア工学2023 05 モデリングToru Tamaki
 
pi-3. 式の抽象化とメソッド
pi-3. 式の抽象化とメソッドpi-3. 式の抽象化とメソッド
pi-3. 式の抽象化とメソッドkunihikokaneko1
 
3週連続DDDその3 ドメイン駆動設計 戦略的設計
3週連続DDDその3  ドメイン駆動設計 戦略的設計3週連続DDDその3  ドメイン駆動設計 戦略的設計
3週連続DDDその3 ドメイン駆動設計 戦略的設計増田 亨
 
時系列解析の使い方 - TokyoWebMining #17
時系列解析の使い方 - TokyoWebMining #17時系列解析の使い方 - TokyoWebMining #17
時系列解析の使い方 - TokyoWebMining #17horihorio
 
デザインパターン(初歩的な7パターン)
デザインパターン(初歩的な7パターン)デザインパターン(初歩的な7パターン)
デザインパターン(初歩的な7パターン)和明 斎藤
 
設計/ドメイン設計(4) 【クラウドアプリケーションのためのオブジェクト指向分析設計講座 第26回】
設計/ドメイン設計(4) 【クラウドアプリケーションのためのオブジェクト指向分析設計講座 第26回】設計/ドメイン設計(4) 【クラウドアプリケーションのためのオブジェクト指向分析設計講座 第26回】
設計/ドメイン設計(4) 【クラウドアプリケーションのためのオブジェクト指向分析設計講座 第26回】Tomoharu ASAMI
 
RubyとActive Support for expert 2
RubyとActive Support for expert 2RubyとActive Support for expert 2
RubyとActive Support for expert 2xibbar
 
Skinny Controllers, Skinny Models
Skinny Controllers, Skinny ModelsSkinny Controllers, Skinny Models
Skinny Controllers, Skinny ModelsKazuhiro Sera
 
設計/コンポーネント設計(2) 【クラウドアプリケーションのためのオブジェクト指向分析設計講座 第21回】
設計/コンポーネント設計(2) 【クラウドアプリケーションのためのオブジェクト指向分析設計講座 第21回】設計/コンポーネント設計(2) 【クラウドアプリケーションのためのオブジェクト指向分析設計講座 第21回】
設計/コンポーネント設計(2) 【クラウドアプリケーションのためのオブジェクト指向分析設計講座 第21回】Tomoharu ASAMI
 

Similar to 2019年度 若手技術者向け講座 デザインパターン (19)

2018年度 若手技術者向け講座 デザインパターン
2018年度 若手技術者向け講座 デザインパターン2018年度 若手技術者向け講座 デザインパターン
2018年度 若手技術者向け講座 デザインパターン
 
設計/原理 【クラウドアプリケーションのためのオブジェクト指向分析設計講座 第28回】
設計/原理 【クラウドアプリケーションのためのオブジェクト指向分析設計講座 第28回】設計/原理 【クラウドアプリケーションのためのオブジェクト指向分析設計講座 第28回】
設計/原理 【クラウドアプリケーションのためのオブジェクト指向分析設計講座 第28回】
 
Cedec2012 ai-contest-design-patterns-principles
Cedec2012 ai-contest-design-patterns-principlesCedec2012 ai-contest-design-patterns-principles
Cedec2012 ai-contest-design-patterns-principles
 
Strategy Pattern
Strategy PatternStrategy Pattern
Strategy Pattern
 
静的モデル(1) 【クラウドアプリケーションのためのオブジェクト指向分析設計講座 第4回】
静的モデル(1) 【クラウドアプリケーションのためのオブジェクト指向分析設計講座 第4回】静的モデル(1) 【クラウドアプリケーションのためのオブジェクト指向分析設計講座 第4回】
静的モデル(1) 【クラウドアプリケーションのためのオブジェクト指向分析設計講座 第4回】
 
設計/コンポーネント設計(3) 【クラウドアプリケーションのためのオブジェクト指向分析設計講座 第22回】
設計/コンポーネント設計(3) 【クラウドアプリケーションのためのオブジェクト指向分析設計講座 第22回】設計/コンポーネント設計(3) 【クラウドアプリケーションのためのオブジェクト指向分析設計講座 第22回】
設計/コンポーネント設計(3) 【クラウドアプリケーションのためのオブジェクト指向分析設計講座 第22回】
 
【アシアル塾】PHPオブジェクト指向再入門・第四回デザインパターンに学ぶクラス設計
【アシアル塾】PHPオブジェクト指向再入門・第四回デザインパターンに学ぶクラス設計【アシアル塾】PHPオブジェクト指向再入門・第四回デザインパターンに学ぶクラス設計
【アシアル塾】PHPオブジェクト指向再入門・第四回デザインパターンに学ぶクラス設計
 
dezainn
dezainndezainn
dezainn
 
デザインパターン
デザインパターンデザインパターン
デザインパターン
 
ソフトウェア工学2023 05 モデリング
ソフトウェア工学2023 05 モデリングソフトウェア工学2023 05 モデリング
ソフトウェア工学2023 05 モデリング
 
pi-3. 式の抽象化とメソッド
pi-3. 式の抽象化とメソッドpi-3. 式の抽象化とメソッド
pi-3. 式の抽象化とメソッド
 
3週連続DDDその3 ドメイン駆動設計 戦略的設計
3週連続DDDその3  ドメイン駆動設計 戦略的設計3週連続DDDその3  ドメイン駆動設計 戦略的設計
3週連続DDDその3 ドメイン駆動設計 戦略的設計
 
時系列解析の使い方 - TokyoWebMining #17
時系列解析の使い方 - TokyoWebMining #17時系列解析の使い方 - TokyoWebMining #17
時系列解析の使い方 - TokyoWebMining #17
 
発表資料20140318
発表資料20140318発表資料20140318
発表資料20140318
 
デザインパターン(初歩的な7パターン)
デザインパターン(初歩的な7パターン)デザインパターン(初歩的な7パターン)
デザインパターン(初歩的な7パターン)
 
設計/ドメイン設計(4) 【クラウドアプリケーションのためのオブジェクト指向分析設計講座 第26回】
設計/ドメイン設計(4) 【クラウドアプリケーションのためのオブジェクト指向分析設計講座 第26回】設計/ドメイン設計(4) 【クラウドアプリケーションのためのオブジェクト指向分析設計講座 第26回】
設計/ドメイン設計(4) 【クラウドアプリケーションのためのオブジェクト指向分析設計講座 第26回】
 
RubyとActive Support for expert 2
RubyとActive Support for expert 2RubyとActive Support for expert 2
RubyとActive Support for expert 2
 
Skinny Controllers, Skinny Models
Skinny Controllers, Skinny ModelsSkinny Controllers, Skinny Models
Skinny Controllers, Skinny Models
 
設計/コンポーネント設計(2) 【クラウドアプリケーションのためのオブジェクト指向分析設計講座 第21回】
設計/コンポーネント設計(2) 【クラウドアプリケーションのためのオブジェクト指向分析設計講座 第21回】設計/コンポーネント設計(2) 【クラウドアプリケーションのためのオブジェクト指向分析設計講座 第21回】
設計/コンポーネント設計(2) 【クラウドアプリケーションのためのオブジェクト指向分析設計講座 第21回】
 

More from keki3

Computer terminology
Computer terminologyComputer terminology
Computer terminologykeki3
 
Introduction to programming
Introduction to programmingIntroduction to programming
Introduction to programmingkeki3
 
2019年度 若手技術者向け講座 リファクタリング
2019年度 若手技術者向け講座 リファクタリング2019年度 若手技術者向け講座 リファクタリング
2019年度 若手技術者向け講座 リファクタリングkeki3
 
2019年度 若手技術者向け講座 UML
2019年度 若手技術者向け講座 UML2019年度 若手技術者向け講座 UML
2019年度 若手技術者向け講座 UMLkeki3
 
2019年度 若手技術者向け講座 オブジェクト指向
2019年度 若手技術者向け講座 オブジェクト指向2019年度 若手技術者向け講座 オブジェクト指向
2019年度 若手技術者向け講座 オブジェクト指向keki3
 
Wakatemukekouza2019 web
Wakatemukekouza2019 webWakatemukekouza2019 web
Wakatemukekouza2019 webkeki3
 
2019 若手技術者向け講座 DB設計
2019 若手技術者向け講座 DB設計2019 若手技術者向け講座 DB設計
2019 若手技術者向け講座 DB設計keki3
 
2019年度 若手技術者向け講座 NoSQL
2019年度 若手技術者向け講座 NoSQL2019年度 若手技術者向け講座 NoSQL
2019年度 若手技術者向け講座 NoSQLkeki3
 
2019 若手技術者向け講座 DBMSの機能 演習問題
2019 若手技術者向け講座 DBMSの機能 演習問題2019 若手技術者向け講座 DBMSの機能 演習問題
2019 若手技術者向け講座 DBMSの機能 演習問題keki3
 
2019年度 若手技術者向け講座 DBMSの機能
2019年度 若手技術者向け講座 DBMSの機能2019年度 若手技術者向け講座 DBMSの機能
2019年度 若手技術者向け講座 DBMSの機能keki3
 
2019年度 若手技術者向け講座 実行計画
2019年度 若手技術者向け講座 実行計画2019年度 若手技術者向け講座 実行計画
2019年度 若手技術者向け講座 実行計画keki3
 
2019年度若手技術者向け講座 インデックス
2019年度若手技術者向け講座 インデックス2019年度若手技術者向け講座 インデックス
2019年度若手技術者向け講座 インデックスkeki3
 
2019年度 若手技術者向け講座 SQL演習
2019年度 若手技術者向け講座 SQL演習2019年度 若手技術者向け講座 SQL演習
2019年度 若手技術者向け講座 SQL演習keki3
 
2019年度若手技術者向け講座 実践SQL
2019年度若手技術者向け講座 実践SQL2019年度若手技術者向け講座 実践SQL
2019年度若手技術者向け講座 実践SQLkeki3
 
2018年度 若手技術者向け講座 UML
2018年度 若手技術者向け講座 UML2018年度 若手技術者向け講座 UML
2018年度 若手技術者向け講座 UMLkeki3
 
2018年度 若手技術者向け講座 オブジェクト指向01
2018年度 若手技術者向け講座 オブジェクト指向012018年度 若手技術者向け講座 オブジェクト指向01
2018年度 若手技術者向け講座 オブジェクト指向01keki3
 
2018年度 若手技術者向け講座 リファクタリング
2018年度 若手技術者向け講座 リファクタリング2018年度 若手技術者向け講座 リファクタリング
2018年度 若手技術者向け講座 リファクタリングkeki3
 
2018年度 若手技術者向け講座 DB設計・正規化
2018年度 若手技術者向け講座 DB設計・正規化2018年度 若手技術者向け講座 DB設計・正規化
2018年度 若手技術者向け講座 DB設計・正規化keki3
 
2018年度 若手技術者向け講座 大量データの扱い・ストアド・メモリ管理
2018年度 若手技術者向け講座 大量データの扱い・ストアド・メモリ管理2018年度 若手技術者向け講座 大量データの扱い・ストアド・メモリ管理
2018年度 若手技術者向け講座 大量データの扱い・ストアド・メモリ管理keki3
 
2018年度 若手技術者向け講座 実行計画
2018年度 若手技術者向け講座 実行計画2018年度 若手技術者向け講座 実行計画
2018年度 若手技術者向け講座 実行計画keki3
 

More from keki3 (20)

Computer terminology
Computer terminologyComputer terminology
Computer terminology
 
Introduction to programming
Introduction to programmingIntroduction to programming
Introduction to programming
 
2019年度 若手技術者向け講座 リファクタリング
2019年度 若手技術者向け講座 リファクタリング2019年度 若手技術者向け講座 リファクタリング
2019年度 若手技術者向け講座 リファクタリング
 
2019年度 若手技術者向け講座 UML
2019年度 若手技術者向け講座 UML2019年度 若手技術者向け講座 UML
2019年度 若手技術者向け講座 UML
 
2019年度 若手技術者向け講座 オブジェクト指向
2019年度 若手技術者向け講座 オブジェクト指向2019年度 若手技術者向け講座 オブジェクト指向
2019年度 若手技術者向け講座 オブジェクト指向
 
Wakatemukekouza2019 web
Wakatemukekouza2019 webWakatemukekouza2019 web
Wakatemukekouza2019 web
 
2019 若手技術者向け講座 DB設計
2019 若手技術者向け講座 DB設計2019 若手技術者向け講座 DB設計
2019 若手技術者向け講座 DB設計
 
2019年度 若手技術者向け講座 NoSQL
2019年度 若手技術者向け講座 NoSQL2019年度 若手技術者向け講座 NoSQL
2019年度 若手技術者向け講座 NoSQL
 
2019 若手技術者向け講座 DBMSの機能 演習問題
2019 若手技術者向け講座 DBMSの機能 演習問題2019 若手技術者向け講座 DBMSの機能 演習問題
2019 若手技術者向け講座 DBMSの機能 演習問題
 
2019年度 若手技術者向け講座 DBMSの機能
2019年度 若手技術者向け講座 DBMSの機能2019年度 若手技術者向け講座 DBMSの機能
2019年度 若手技術者向け講座 DBMSの機能
 
2019年度 若手技術者向け講座 実行計画
2019年度 若手技術者向け講座 実行計画2019年度 若手技術者向け講座 実行計画
2019年度 若手技術者向け講座 実行計画
 
2019年度若手技術者向け講座 インデックス
2019年度若手技術者向け講座 インデックス2019年度若手技術者向け講座 インデックス
2019年度若手技術者向け講座 インデックス
 
2019年度 若手技術者向け講座 SQL演習
2019年度 若手技術者向け講座 SQL演習2019年度 若手技術者向け講座 SQL演習
2019年度 若手技術者向け講座 SQL演習
 
2019年度若手技術者向け講座 実践SQL
2019年度若手技術者向け講座 実践SQL2019年度若手技術者向け講座 実践SQL
2019年度若手技術者向け講座 実践SQL
 
2018年度 若手技術者向け講座 UML
2018年度 若手技術者向け講座 UML2018年度 若手技術者向け講座 UML
2018年度 若手技術者向け講座 UML
 
2018年度 若手技術者向け講座 オブジェクト指向01
2018年度 若手技術者向け講座 オブジェクト指向012018年度 若手技術者向け講座 オブジェクト指向01
2018年度 若手技術者向け講座 オブジェクト指向01
 
2018年度 若手技術者向け講座 リファクタリング
2018年度 若手技術者向け講座 リファクタリング2018年度 若手技術者向け講座 リファクタリング
2018年度 若手技術者向け講座 リファクタリング
 
2018年度 若手技術者向け講座 DB設計・正規化
2018年度 若手技術者向け講座 DB設計・正規化2018年度 若手技術者向け講座 DB設計・正規化
2018年度 若手技術者向け講座 DB設計・正規化
 
2018年度 若手技術者向け講座 大量データの扱い・ストアド・メモリ管理
2018年度 若手技術者向け講座 大量データの扱い・ストアド・メモリ管理2018年度 若手技術者向け講座 大量データの扱い・ストアド・メモリ管理
2018年度 若手技術者向け講座 大量データの扱い・ストアド・メモリ管理
 
2018年度 若手技術者向け講座 実行計画
2018年度 若手技術者向け講座 実行計画2018年度 若手技術者向け講座 実行計画
2018年度 若手技術者向け講座 実行計画
 

Recently uploaded

TataPixel: 畳の異方性を利用した切り替え可能なディスプレイの提案
TataPixel: 畳の異方性を利用した切り替え可能なディスプレイの提案TataPixel: 畳の異方性を利用した切り替え可能なディスプレイの提案
TataPixel: 畳の異方性を利用した切り替え可能なディスプレイの提案sugiuralab
 
論文紹介:Content-Aware Token Sharing for Efficient Semantic Segmentation With Vis...
論文紹介:Content-Aware Token Sharing for Efficient Semantic Segmentation With Vis...論文紹介:Content-Aware Token Sharing for Efficient Semantic Segmentation With Vis...
論文紹介:Content-Aware Token Sharing for Efficient Semantic Segmentation With Vis...Toru Tamaki
 
Open Source UN-Conference 2024 Kawagoe - 独自OS「DaisyOS GB」の紹介
Open Source UN-Conference 2024 Kawagoe - 独自OS「DaisyOS GB」の紹介Open Source UN-Conference 2024 Kawagoe - 独自OS「DaisyOS GB」の紹介
Open Source UN-Conference 2024 Kawagoe - 独自OS「DaisyOS GB」の紹介Yuma Ohgami
 
【早稲田AI研究会 講義資料】3DスキャンとTextTo3Dのツールを知ろう!(Vol.1)
【早稲田AI研究会 講義資料】3DスキャンとTextTo3Dのツールを知ろう!(Vol.1)【早稲田AI研究会 講義資料】3DスキャンとTextTo3Dのツールを知ろう!(Vol.1)
【早稲田AI研究会 講義資料】3DスキャンとTextTo3Dのツールを知ろう!(Vol.1)Hiroki Ichikura
 
TSAL operation mechanism and circuit diagram.pdf
TSAL operation mechanism and circuit diagram.pdfTSAL operation mechanism and circuit diagram.pdf
TSAL operation mechanism and circuit diagram.pdftaisei2219
 
SOPを理解する 2024/04/19 の勉強会で発表されたものです
SOPを理解する       2024/04/19 の勉強会で発表されたものですSOPを理解する       2024/04/19 の勉強会で発表されたものです
SOPを理解する 2024/04/19 の勉強会で発表されたものですiPride Co., Ltd.
 
論文紹介:Automated Classification of Model Errors on ImageNet
論文紹介:Automated Classification of Model Errors on ImageNet論文紹介:Automated Classification of Model Errors on ImageNet
論文紹介:Automated Classification of Model Errors on ImageNetToru Tamaki
 
論文紹介:Semantic segmentation using Vision Transformers: A survey
論文紹介:Semantic segmentation using Vision Transformers: A survey論文紹介:Semantic segmentation using Vision Transformers: A survey
論文紹介:Semantic segmentation using Vision Transformers: A surveyToru Tamaki
 

Recently uploaded (8)

TataPixel: 畳の異方性を利用した切り替え可能なディスプレイの提案
TataPixel: 畳の異方性を利用した切り替え可能なディスプレイの提案TataPixel: 畳の異方性を利用した切り替え可能なディスプレイの提案
TataPixel: 畳の異方性を利用した切り替え可能なディスプレイの提案
 
論文紹介:Content-Aware Token Sharing for Efficient Semantic Segmentation With Vis...
論文紹介:Content-Aware Token Sharing for Efficient Semantic Segmentation With Vis...論文紹介:Content-Aware Token Sharing for Efficient Semantic Segmentation With Vis...
論文紹介:Content-Aware Token Sharing for Efficient Semantic Segmentation With Vis...
 
Open Source UN-Conference 2024 Kawagoe - 独自OS「DaisyOS GB」の紹介
Open Source UN-Conference 2024 Kawagoe - 独自OS「DaisyOS GB」の紹介Open Source UN-Conference 2024 Kawagoe - 独自OS「DaisyOS GB」の紹介
Open Source UN-Conference 2024 Kawagoe - 独自OS「DaisyOS GB」の紹介
 
【早稲田AI研究会 講義資料】3DスキャンとTextTo3Dのツールを知ろう!(Vol.1)
【早稲田AI研究会 講義資料】3DスキャンとTextTo3Dのツールを知ろう!(Vol.1)【早稲田AI研究会 講義資料】3DスキャンとTextTo3Dのツールを知ろう!(Vol.1)
【早稲田AI研究会 講義資料】3DスキャンとTextTo3Dのツールを知ろう!(Vol.1)
 
TSAL operation mechanism and circuit diagram.pdf
TSAL operation mechanism and circuit diagram.pdfTSAL operation mechanism and circuit diagram.pdf
TSAL operation mechanism and circuit diagram.pdf
 
SOPを理解する 2024/04/19 の勉強会で発表されたものです
SOPを理解する       2024/04/19 の勉強会で発表されたものですSOPを理解する       2024/04/19 の勉強会で発表されたものです
SOPを理解する 2024/04/19 の勉強会で発表されたものです
 
論文紹介:Automated Classification of Model Errors on ImageNet
論文紹介:Automated Classification of Model Errors on ImageNet論文紹介:Automated Classification of Model Errors on ImageNet
論文紹介:Automated Classification of Model Errors on ImageNet
 
論文紹介:Semantic segmentation using Vision Transformers: A survey
論文紹介:Semantic segmentation using Vision Transformers: A survey論文紹介:Semantic segmentation using Vision Transformers: A survey
論文紹介:Semantic segmentation using Vision Transformers: A survey
 

2019年度 若手技術者向け講座 デザインパターン