MVCシステムのすべてのモデルの基本クラスで、SomeChildClass :: getNew()を介して呼び出されたときに、要求された子クラスのインスタンスを返すファクトリメソッドBaseCLass :: getNew()を作成しました。
今、私はプログラマーにこのファクトリを使用させる方法を探しています。つまり、通常、次のように、クラスを直接作成する必要があります。
new SomeChildClass
作成時に例外がスローされ、ファクトリによって作成されたクラスのみが使用可能になります。
これをどのように達成できるかについてのアイデアはありますか?
私たちのコードはPHPで書かれていますが、別の言語で考えても、あなたのアイデアが価値のあるものになる可能性は十分にあります。
編集:私が継承するクラスのフレームワークコンストラクターはパブリックであり、phpはこれを許可しないため、コンストラクターをプライベートにすることはできません。