Download free for 30 days
Sign in
Upload
Language (EN)
Support
Business
Mobile
Social Media
Marketing
Technology
Art & Photos
Career
Design
Education
Presentations & Public Speaking
Government & Nonprofit
Healthcare
Internet
Law
Leadership & Management
Automotive
Engineering
Software
Recruiting & HR
Retail
Sales
Services
Science
Small Business & Entrepreneurship
Food
Environment
Economy & Finance
Data & Analytics
Investor Relations
Sports
Spiritual
News & Politics
Travel
Self Improvement
Real Estate
Entertainment & Humor
Health & Medicine
Devices & Hardware
Lifestyle
Change Language
Language
English
Español
Português
Français
Deutsche
Cancel
Save
Submit search
EN
YY
Uploaded by
yoshitaro yoyo
PDF, PPTX
39 views
Introduction to Design Patterns_and_Object_Orientation.pdf
デザインパターン入門とオブジェクト指向について
Engineering
◦
Read more
0
Save
Share
Embed
Embed presentation
Download
Download as PDF, PPTX
1
/ 65
2
/ 65
3
/ 65
4
/ 65
5
/ 65
6
/ 65
7
/ 65
8
/ 65
9
/ 65
10
/ 65
11
/ 65
12
/ 65
13
/ 65
14
/ 65
15
/ 65
16
/ 65
17
/ 65
18
/ 65
19
/ 65
20
/ 65
21
/ 65
22
/ 65
23
/ 65
24
/ 65
25
/ 65
26
/ 65
27
/ 65
28
/ 65
29
/ 65
30
/ 65
31
/ 65
32
/ 65
33
/ 65
34
/ 65
35
/ 65
36
/ 65
37
/ 65
38
/ 65
39
/ 65
40
/ 65
41
/ 65
42
/ 65
43
/ 65
44
/ 65
45
/ 65
46
/ 65
47
/ 65
48
/ 65
49
/ 65
50
/ 65
51
/ 65
52
/ 65
53
/ 65
54
/ 65
55
/ 65
56
/ 65
57
/ 65
58
/ 65
59
/ 65
60
/ 65
61
/ 65
62
/ 65
63
/ 65
64
/ 65
65
/ 65
More Related Content
PDF
デザインパターンの解説とソフトウェア開発における活用のためのプレゼンテーション資料
by
Takumi Yokoyama
PPT
覚えて帰ろうJavaデザインパターン
by
Kazuya Hirota
PDF
金沢アプリ塾デザインパターンとオープンデータ
by
Masayuki KaToH
PPT
デザインパターン勉強会
by
Tetsuya Yoshida
ODP
デザインパターン
by
n-aoki0409
PDF
2018年度 若手技術者向け講座 デザインパターン
by
keki3
PDF
デザインパターン
by
gaaupp
PDF
dezainn
by
kzhshmt
デザインパターンの解説とソフトウェア開発における活用のためのプレゼンテーション資料
by
Takumi Yokoyama
覚えて帰ろうJavaデザインパターン
by
Kazuya Hirota
金沢アプリ塾デザインパターンとオープンデータ
by
Masayuki KaToH
デザインパターン勉強会
by
Tetsuya Yoshida
デザインパターン
by
n-aoki0409
2018年度 若手技術者向け講座 デザインパターン
by
keki3
デザインパターン
by
gaaupp
dezainn
by
kzhshmt
Similar to Introduction to Design Patterns_and_Object_Orientation.pdf
PDF
デザインパターンとともに学ぶオブジェクト指向のこころ
by
jum paku
PDF
Janog31 bof-pattern-sasaki-01
by
Ken SASAKI
PDF
オブジェクト指向の設計と実装の学び方のコツ
by
増田 亨
PDF
第3回勉強会 オブジェクト指向
by
hakoika-itwg
PPTX
Javaによる理想のデザインパターン
by
Tomomi Fujisaki
PPTX
凡人の凡人による凡人のためのデザインパターン第一幕 Public
by
bonjin6770 Kurosawa
PPTX
デザインパターン入門
by
KenjiroUehara
PDF
【アシアル塾】PHPオブジェクト指向再入門・第四回デザインパターンに学ぶクラス設計
by
アシアル株式会社
PPTX
GoF デザインパターン 2009
by
miwarin
ODP
Strategy パターンと開放/閉鎖原則に見るデザインパターンの有用性
by
tomo_masakura
PDF
第2回 モデリング勉強会
by
hakoika-itwg
PPTX
妄想で覚えるデザインパターン
by
yumi_chappy
PPT
覚えて帰ろうJavaデザインパターン
by
dcubeio
PDF
Javaによる基礎デザインパターン
by
pollseed
PDF
2018年度 若手技術者向け講座 オブジェクト指向01
by
keki3
PDF
デザパタ勉強会(上級編)
by
kaz3391
PDF
Why-is-ImplementationPattterns-important-so-much
by
Koji SHIMADA
PDF
Howtoよいデザイン
by
Hiroki Yagita
PDF
Abstract
by
test
PDF
2019年度 若手技術者向け講座 デザインパターン
by
keki3
デザインパターンとともに学ぶオブジェクト指向のこころ
by
jum paku
Janog31 bof-pattern-sasaki-01
by
Ken SASAKI
オブジェクト指向の設計と実装の学び方のコツ
by
増田 亨
第3回勉強会 オブジェクト指向
by
hakoika-itwg
Javaによる理想のデザインパターン
by
Tomomi Fujisaki
凡人の凡人による凡人のためのデザインパターン第一幕 Public
by
bonjin6770 Kurosawa
デザインパターン入門
by
KenjiroUehara
【アシアル塾】PHPオブジェクト指向再入門・第四回デザインパターンに学ぶクラス設計
by
アシアル株式会社
GoF デザインパターン 2009
by
miwarin
Strategy パターンと開放/閉鎖原則に見るデザインパターンの有用性
by
tomo_masakura
第2回 モデリング勉強会
by
hakoika-itwg
妄想で覚えるデザインパターン
by
yumi_chappy
覚えて帰ろうJavaデザインパターン
by
dcubeio
Javaによる基礎デザインパターン
by
pollseed
2018年度 若手技術者向け講座 オブジェクト指向01
by
keki3
デザパタ勉強会(上級編)
by
kaz3391
Why-is-ImplementationPattterns-important-so-much
by
Koji SHIMADA
Howtoよいデザイン
by
Hiroki Yagita
Abstract
by
test
2019年度 若手技術者向け講座 デザインパターン
by
keki3
More from yoshitaro yoyo
PDF
3層アーキテクチャとMVCモデル -LaravelにおけるMVCモデルの流れ-
by
yoshitaro yoyo
PDF
RESTful Web Application by Laravel
by
yoshitaro yoyo
PDF
入社一発目で激烈炎上案件にテスターとして参加して得た気付き
by
yoshitaro yoyo
PDF
Transaction description how to use it in laravel
by
yoshitaro yoyo
PDF
Laravelの検索機能の実装方法
by
yoshitaro yoyo
PDF
A brief overview of recent learnings.pdf
by
yoshitaro yoyo
PDF
Recommendation of challenge.pdf
by
yoshitaro yoyo
PDF
Ymbal expart.php.2ndtermstudent.finalpresentation
by
yoshitaro yoyo
PDF
Differences between session and cookie and background of their creation
by
yoshitaro yoyo
3層アーキテクチャとMVCモデル -LaravelにおけるMVCモデルの流れ-
by
yoshitaro yoyo
RESTful Web Application by Laravel
by
yoshitaro yoyo
入社一発目で激烈炎上案件にテスターとして参加して得た気付き
by
yoshitaro yoyo
Transaction description how to use it in laravel
by
yoshitaro yoyo
Laravelの検索機能の実装方法
by
yoshitaro yoyo
A brief overview of recent learnings.pdf
by
yoshitaro yoyo
Recommendation of challenge.pdf
by
yoshitaro yoyo
Ymbal expart.php.2ndtermstudent.finalpresentation
by
yoshitaro yoyo
Differences between session and cookie and background of their creation
by
yoshitaro yoyo
Recently uploaded
PDF
krsk_aws_re-growth_aws_devops_agent_20251211
by
uedayuki
PPTX
君をむしばむこの力で_最終発表-1-Monthon2025最終発表用資料-.pptx
by
rintakano624
PDF
音楽アーティスト探索体験に特化した音楽ディスカバリーWebサービス「DigLoop」|Created byヨハク技研
by
yohakugiken
PDF
ソフトウェアエンジニアがクルマのコアを創る!? モビリティの価値を最大化するソフトウェア開発の最前線【DENSO Tech Night 第一夜】
by
dots.
PDF
2025/12/12 AutoDevNinjaピッチ資料 - 大人な男のAuto Dev環境
by
Masahiro Takechi
PDF
ソフトとハードの二刀流で実現する先進安全・自動運転のアルゴリズム開発【DENSO Tech Night 第二夜】 ー高精度な画像解析 / AI推論モデル ...
by
dots.
krsk_aws_re-growth_aws_devops_agent_20251211
by
uedayuki
君をむしばむこの力で_最終発表-1-Monthon2025最終発表用資料-.pptx
by
rintakano624
音楽アーティスト探索体験に特化した音楽ディスカバリーWebサービス「DigLoop」|Created byヨハク技研
by
yohakugiken
ソフトウェアエンジニアがクルマのコアを創る!? モビリティの価値を最大化するソフトウェア開発の最前線【DENSO Tech Night 第一夜】
by
dots.
2025/12/12 AutoDevNinjaピッチ資料 - 大人な男のAuto Dev環境
by
Masahiro Takechi
ソフトとハードの二刀流で実現する先進安全・自動運転のアルゴリズム開発【DENSO Tech Night 第二夜】 ー高精度な画像解析 / AI推論モデル ...
by
dots.
Introduction to Design Patterns_and_Object_Orientation.pdf
1.
@yoshitaro-yoyo 2022/09/03 デザインパターン⼊⾨とオブジェクト指向
2.
エンジニア前 2021年11月 2022年8月 @yoshitaro-yoyo 薬局店長・臨床工学技士・せどり・スクール講師 大阪の受託開発企業 大阪の自社開発のSES部門 エンジニアの輪・京都プログラミング教室運営メンバー ストリートダンス・音楽・バイク・映画・漫画・料理好き yoshitaro
3.
1.デザインパターンとは? 2.デザインパターンの注意点 3.現代のデザインパターンの立ち位置 4.デザインパターンが『僕に』教えてくれたこと 1.オブジェクト指向について 2.本当の再利用の視点 デザインパターン⼊⾨とオブジェクト指向
4.
1. デザインパターンとは?
5.
繰り返し現れる解決策・設計に 名前を与えて、形式知にしたもの パターンとは「型、類型、様式、繰り返される模様」
7.
書籍 『オブジェクト指向に おける再利用のための デザインパターン』 1995年出版 Erich Gamma, Richard
Helm, Ralph Johnson, John Vlissides 通称 Gang of Four:GoF
8.
Template Method Pattern 共通な処理(処理順序) 場合で異なる具体的な処理内容 分離したデザインパターン public
abstract class AbstractDisplay { //サブクラスに実装をまかせる抽象メソッド public abstract void displayHeader(); public abstract void displayBody(); public abstract void displayFooter(); // AbstractDisplayで実装してるメソッド public final void display() { displayHeader(); for (int i = 0; i < 5; i++) { displayBody(); } displayFooter(); } }
9.
繰り返し現れる解決策・設計に 名前を与えて、形式知にしたもの パターンとは「型、類型、様式、繰り返される模様」
10.
パターンは再利用される パターンとは「型、類型、様式、繰り返される模様」
11.
• Abstract Pattern
(AbstractClass ) • Template Method Pattern ( Abstract ) • Factory Method Pattern ( TemplateMethod ) • Dependency Injection Pattern ( FactoryMethod ) パターンの中に別のパターンが存在する
12.
パターンを知る人には 「パターン名」を伝えるだけで 設計意図が伝わる 解決したい課題を、効率良く相手に伝える為の語彙でもある
13.
2. デザインパターンの注意点
14.
1995年 当時、Javaはリリース前(1996年) 2層アーキテクチャ全盛時代 C++での開発上の課題のソリューションとしての側面が強かった
15.
つまり
16.
現代にそのまま 当て嵌まるわけではない
17.
15年後 GoFにより再定義
18.
変更 Core:最 使⽤ 重要 Creational:⽣成
関 Peripheral: 使 Other: 他 変更(1):Factory Method Factory ⼀般化 新規追加(4):Null Object, Type Object, Dependency Injection, Extension Object/Interface 削除(6):Singleton, Adapter, Bridge, Chain of Responsibility, Memento, Observer 格下 :Flyweight, Interpreter aaaaaaa aaaaaaa aaaaaaa aaaaaaa aaaaaa
19.
3. 現代のデザインパターンの立ち位置
20.
GoFデザインパターン 当時の立ち位置
21.
変更容易性を 『設計によって実現するため』 の見本としてのデザインパターン 変更に強い構造の設計を行うための見本
22.
GoFデザインパターン 現在の立ち位置
23.
リファクタリングに 『方向性・ターゲット・語彙』 を与えるための良いサンプル リファクタリングの方向性としての見本(自動テストが前提)
24.
4. デザインパターンが 『僕に』教えてくれたこと
25.
①オブジェクト指向についてわかったこと
26.
1. 保守コスト削減に焦点を当てた設計手法 2. 『不変を軸に、可変であろう箇所をクラスに抽出する』ことを想定 3.
よくみる動物でオブジェクト指向を説明するのまじ無駄
27.
1. 保守コスト削減に 焦点を当てた設計手法 (逆に開発コストが高い)
28.
変更容易性 (内部・外部)
29.
機能追加時の影響が少ない 影響範囲の特定し易さ 修正・機能追加のし易さ データ抽象化・情報隠蔽・再利用
30.
2. 不変を軸に 可変であろう箇所を クラスに抽出する
31.
分かり易いのは不変の抽出 こちらから話します
32.
不変の抽出
33.
処理の固まり三つ
34.
それぞれの処理の中で 共通の処理が濃いグレーの部分
35.
赤はそれぞれの中で 処理が異なる部分
36.
可変な処理 不変な処理
37.
可変な処理 不変な処理 重複箇所を括り上げる
38.
抽出された 不変な処理 可変な処理
39.
抽出された 不変な処理 可変な処理 継承
40.
抽出された 不変な処理 可変な処理 継承 複数のクラスにおいて 何度も現れる重複部分を 「共通の処理」「不変な部分」 として抽出。サブクラスは 「可変(変更されやすい)」 処理を表現する場所
41.
では次は可変を抽出
42.
処 理 の 流 れ 不変な処理 可変な処理 不変な処理
43.
処 理 の 流 れ 不変な処理 可変な処理を抽出 して抽象化する 可変な処理 不変な処理
44.
処 理 の 流 れ 不変な処理 可変な処理を抽出 して抽象化する (interface /
abstract) 不変な処理 可変を外部に 抽出!!
45.
処 理 の 流 れ 不変な処理 可変な処理を抽出 して抽象化する (interface /
abstract) 不変な処理 抽象化処理 の具象化 (implements / extends) 抽象化処理 の具象化 (implements / extends) 抽象化処理 の具象化 (implements / extends)
46.
可変な処理を抽出 して抽象化する (interface / abstract) 抽象化処理 の具象化 (implements
/ extends) 抽象化処理 の具象化 (implements / extends) 抽象化処理 の具象化 (implements / extends) 処 理 の 流 れ 不変な処理 不変な処理 可変が消えて 不変が残り 安定化!! 単体で⾒れば 具象クラス達は 安定している!
47.
可変な処理を抽出 して抽象化する (interface / abstract) 新しい処理は クラス追加 で実現する 抽象化処理 の具象化 (implements
/ extends) 抽象化処理 の具象化 (implements / extends) 抽象化処理 の具象化 (implements / extends) 抽象化処理 の具象化 (implements / extends) 処 理 の 流 れ 不変な処理 不変な処理
48.
可変な処理を抽出 して抽象化する (interface / abstract) 抽象化処理 の具象化 (implements
/ extends) 抽象化処理 の具象化 (implements / extends) 抽象化処理 の具象化 (implements / extends) 抽象化処理 の具象化 (implements / extends) 処 理 の 流 れ 不変な処理 不変な処理
49.
3. 動物でオブジェクト指向 の説明まじ無駄
50.
・不⼗分! ・不正確!! ・不適当!!! ・ !! ・理解 !! ・親
神 !!! 理由
51.
継承をフィーチャーすな! ※ Golang /
Rust には継承自体ない
52.
継承 ポリモーフィズム カプセル化 (データ抽象化・情報隠蔽) 抽象化
53.
オブジェクトとは 機能に必要な 関数とデータの(最小)単位
54.
それ以上でも以下でもない
55.
オブジェクト指向についてわかったこと
56.
・継承 委譲( ) ・具象
(抽象) ・「変更 部分」 「変更 部分」 分離 ・ 指向 本質的 再利⽤性 提⽰ デザインパターンが教えてくれたこと
57.
本当の意味での再利用とは
58.
差分 実装 再利⽤ 、 利⽤側
再利⽤
59.
抽出された 不変な処理 可変な処理 継承 複数のクラスにおいて 何度も現れる重複部分を 「共通の処理」「不変な部分」 として抽出。サブクラスは 「可変(変更されやすい)」 処理を表現する場所
60.
差分 実装 再利⽤ 、 利⽤側
再利⽤
61.
処 理 の 流 れ 不変な処理 可変な処理を抽出 して抽象化する (interface /
abstract) 不変な処理 不変な処理 抽象化処理 の具象化 (implements / extends) 抽象化処理 の具象化 (implements / extends) 抽象化処理 の具象化 (implements / extends) 抽象化処理 の具象化 (implements / extends) 可変な処理が 不変な処理に!
62.
まとめ
63.
・ 指向 ⽬標
「変更容易性」 ・ 変更 強 構造 ・ 使 注意 必要 ・現代 ⽅向性 ・継承 委譲 ・具象 (抽象) ・ 指向 本質的 再利⽤性 提⽰ ・「変更 部分」 「変更 部分」 分離 デザインパターンが教えてくれたこと
65.
ご静聴 ありがとうございました
Download