Avatar
has-a パターンを作るときに、機能Xをhas_aで合成する事を表すプロトコルも一緒に定義すると、
3:48 AM
エクステンションも併用するとフィールド定義するだけで一通りのプロパティとメソッドが自動的に生える
3:48 AM
って事ができて便利だなってなってる
3:49 AM
class ViewBindingHelper<Model> { ... } protocol ViewBindingHelperUser { associatedtype Model var helper: ViewBindingHelper<Model> { get } } extension ViewBindingHelperUser { 追加される機能 }
3:49 AM
こうしておいて
3:50 AM
class ProductListTableView : NSTableView, ViewBindingHelperUser { let helper: ViewBindingHelper<ProductList> = .init() } (edited)
3:50 AM
使う側ではこうやって1行書くともろもろ生える