デザインパターン4:State,Decorator,Bridge【C#】

Stateパターン,Decoratorパターン,BridgeパターンをC#を使って解説しています

4.74 (86 reviews)
Udemy
platform
日本語
language
Programming Languages
category
デザインパターン4:State,Decorator,Bridge【C#】
817
students
4.5 hours
content
Sep 2023
last update
$19.99
regular price

What you will learn

デザインパターン設計を学ぶことができる

Stateパターンを理解することができる

Decoratorパターンを理解することができる

Bridgeパターンを理解することができる

Description

どうもこんにちは、ピーコックアンダーソンです。


今回はデザインパターンの4つ目のコースということで、

以下の3つのパターンを収録してます。

・Stateパターン

・Decoratorパターン

・Bridgeパターン


【Stateパターン】

Stateパターンは、状態をクラスで表現するパターンです。

通常、オブジェクト指向はモノをクラス化するのですが、

このStateパターンでは、状態をクラス化するという考え方を行います。


状態クラスが次の状態に遷移したり、

その状態でやるべきことをやったりというような実装方法になっているので、

状態遷移などがある機器などの状態管理などには適したパターンです。


【Decoratorパターン】

Decoratorパターンは、

既存のクラスをラップして機能を拡張することができるパターンです。

ただラップするだけではなく、ラップした後も、

既存のクラスと同じインターフェースや抽象になるようにすることで、

元々の既存クラスと同じように扱うことができるというのが特徴です。


さらに自分自身が自分を呼び出すという再帰的な構造にもなってるので、

拡張機能というのは1つだけではなく、

2つ3つと、複数の機能を拡張するということもできます。

既存クラスを触ることなく、機能拡張したい場合には有効なパターンです。


【Bridgeパターン】

Bridgeパターンは、次元の異なる拡張がある場合、

例えば1つの種類が増えるだけで、

3つも4つもクラスが増えてしまうといった、

組み合わせによるクラス爆発が起きるような場合は、

Bridgeパターンを使うことで、

必要なクラスを組み合わせて、

全てのパターンの組み合わせを実現できるようになるので、

組み合わせによるクラス爆発が起きるような場合には、

Bridgeパターンでの対応というのが有効になります。


このような3つのパターンを

徹底的に掘り下げて解説してますので、

興味のある方はご覧になってみてください。


Content

はじめに

はじめに

State

A01_Stateパターンとは
B01_実装例の仕様説明
B02_画面レイアウトの作成
B03_べた書きでOFF状態を実装する
B04_べた書きでLow状態を実装する
B05_べた書きでの実装完了
B06A_Stateパターンのクラス図
B06B_状態を同一視するためのインタフェース
B07_状態の具象クラスの実装
B08_Contextクラスで現在の状態を持つ
B09_Contextで次の状態に遷移させる方法
B10_状態クラスが次の状態クラスを知っている実装にする
B11_ClientでContextを保持する
B12_各状態にGetTextを実装する
B13_Stateパターンで状態を遷移させる
B14_Contextで通信部分の実装を試みる
B15_Stateパターンの完成
B16_Stateパターンの振り返り
B17_状態クラスを増やしてもクライアントに影響が出ない
B18_Downボタンを追加してコードの複雑さを検証する1
B19_Downボタンを追加してコードの複雑さを検証する2
B20_StateパターンにObserverパターンを適応する方法
B21_OnOffボタンを追加してコードの複雑さを検証する1
B22_OnOffボタンを追加してコードの複雑さを検証する2
B23_OnOffボタンを追加してコードの複雑さを検証する3
B24_Stateパターンの振り返り
B25_状態遷移はどこに書くのか
B26_Contextで状態遷移をさせる特殊ケースの実装1
B27_Contextで状態遷移をさせる特殊ケースの実装2
B28_独自の例外クラスを作ってエラーメッセージを統一する方法
B29_オブジェクトの生成と破棄1
B30_オブジェクトの生成と破棄2
C01_Stateパターンのその他の例
C02_Stateパターンのまとめ

Decorator

D01_デコレーターパターンとは
D02_プロジェクトの作成
D03_既存機能の実装
D04_機能拡張について考える
D05_フラグでの解決_機能拡張を考える
D06_フラグでの解決_実装の追加を考える
D07_フラグでの解決_実装が増えた場合
D08_継承による解決_機能拡張
D09_継承による解決_機能拡張の種類が増えた場合
D10_継承による解決_実装の追加を考える
D11_メソッド追加での解決を考える
D12_Decoratorの作り方
D13_Decoratorの使い方
D14_Decoratorでの解決_Lower機能の追加
D15_Decoratorパターンのクラス図
D16_Decoratorの抽象クラスを追加する
D17_Decoratorパターンでの実装追加を考える
D18_再帰的なDecoratorパターンを考える
E01_通信処理の例_画面レイアウトの作成
E02_通信処理部分の実装
E03_Decoratorパターンで暗号化する
E04_Decoratorパターンで圧縮する
E05_Decorator抽象クラスを追加する
E06_通信処理が増えた場合の実装
E07_Decoratorパターンまとめ

Bridge

F01_Bridgeパターンとは
F02_Device抽象クラスの作成
F03_温度クラスの実装
F04_実装単位の追加
F05_拡張での機能追加とその問題点
F06_クラスが組み合わせの数だけ増える問題
F07_電池式の画面実装
F08_バッテリーレベルの表示とリスコフの置換原則違反に関して
F09_実装単位で切り出す
F10_Bridge部分の実装
F11_Deviceのサブクラスを実装する
F12_Bridgeパターンでの組み合わせの実装方法
F13_抽象に対してコーディングする
F14_Bridgeパターンで実装が増えた場合
F15_Bridgeパターンで拡張単位が増えた場合
F16_Bridgeパターンまとめ

ボーナスレクチャー

ボーナスレクチャー

Reviews

川井啓介
October 9, 2023
ピーコックアンダーソンさんのレクチャーはなぜわかりやすいのか?ご自身もおっしゃってましたがオブジェクト指向を理解したいと願うエンジニアのペインポイントをわかっているからでしょう。知識のない状態で実装することから始まって、パターンを適用するとこんなに利点がある。現実的な状況での実装方針へのアドバイスもあり、非常に参考になりました。
雅志
May 8, 2023
主に制御系のソフトを作成してきたが、なかなかデザインパターンが使える機会は少ないと思っていた。しかし、今回のレクチャーで教えていただいた3つのバターンは、制御系ソフトとの親和性が高く有益であることが理解でき、よい学習の機会を頂き感謝している。
Tatsuya
April 2, 2023
最初からデザインパターンを使うのではなく、使わないで実装をして、その後デザインパターンを適用していく流れでの解説は、とてもわかりやすい。どういう事例で今回のデザインパターンを適用すればよいかというのが、イメージしやすかったです。

Charts

Price

デザインパターン4:State,Decorator,Bridge【C#】 - Price chart

Rating

デザインパターン4:State,Decorator,Bridge【C#】 - Ratings chart

Enrollment distribution

デザインパターン4:State,Decorator,Bridge【C#】 - Distribution chart
5173846
udemy ID
2/22/2023
course created date
4/1/2023
course indexed date
Bot
course submited by