Swift デコレータパターン
デコレータパターン
The Decorator(デコレータ)とはデザインパターンの一つ。
既存のクラスに存在しなかった追加機能を実装するために用いる。クラス内のゴニョゴニョせずに追加機能を実装できるデザインパターンと覚えれば良さげ、、
extension
extensionがあるから必要なくない?
よくextensionをつかって関数を作成したり、Delegateパターンを追加するのが王道な気がする。。
可読性も上がるし、実際僕自身もたくさん使用する。
ただ、既存のクラスをあくまで拡張するのがextensionなのでoverrideはできないし、ストアドプロパティをゴニョゴニョすることはできない。
例コード
// 全ての親クラス
class Living {
func bark() -> String {
return "live"
}
}
// 動物クラス
class Animal: Living {
override func bark() -> String {
return "animal"
}
}
// 各動物の種類の親クラス
class Kind: Living {
let living: Living
init(living: Living) {
self.living = living
}
}
//🐩クラス
class Dog: Kind {
override func bark() ->String {
return "wanwan"
}
}
Author And Source
この問題について(Swift デコレータパターン), 我々は、より多くの情報をここで見つけました https://qiita.com/katopan/items/e71aa213ec88dcb34054著者帰属:元の著者の情報は、元のURLに含まれています。著作権は原作者に属する。
Content is automatically searched and collected through network algorithms . If there is a violation . Please contact us . We will adjust (correct author information ,or delete content ) as soon as possible .