よう皆。アレックス対あなたと。
先ほど、シングルトンとストラテジーのデザインパターン、Golang言語での実装の微妙さについて説明しました。
今日はファクトリメソッドについてお話します。
ポイントは何ですか?
ファクトリメソッドは、仮想コンストラクタとも呼ばれ、親クラスでオブジェクトを作成するための汎用インターフェイスを定義し、子クラスで作成されたオブジェクトを変更できるようにする驚異的なデザインパターンです。
テンプレートを使用すると、クラスはオブジェクトの作成をサブクラスに委任できます。次の場合に使用されます。
クラスは、作成する必要のあるサブクラスオブジェクトを事前に知りません。
責任はサブクラスに委任され、どのサブクラスがそれらの責任を引き受けるかについての知識はローカライズされます。
親クラスの作成されたオブジェクトは、サブクラスに特化しています。
それはどのような問題を解決しますか?
あなたが食品配達管理プログラムを作成したと想像してください。このプログラムでは、電動スクーターを唯一の配達車両として使用しています。あなたのe-スクーター宅配便はポイントAからポイントBに食べ物を配達します。それは簡単です。
. , , -. . .
, , 80% . ?
, , , .
?
, , , .
, . , , , .
.
Golang
PHP, . Golang , , . , - .
iTransport.go, . (struct), iTransport.
Factory.go, . main.go. getTransport(t string)
, .
?
. , , .
. , . , .
?
. , .
.
/ (. open–closed principle, OCP) — , : « (, , . .) , »
?
, .
, -.
, Alex Versus. .
!