私は c#/.net に慣れているので、タイプセーフな背景を持っています。ルビーを使用しています。プライベートな(必要に応じて保護された)コンストラクターを持つクラス(ClassA)を作成したいと思います。その理由は、すべての ClassA オブジェクトのインスタンス化を制御する Factory (FactoryModule::create) を作成したいからです。これは Ruby では絶対確実 (?) ではないことはわかっていますが、コードとテストに基づいて ClassA を FactoryModule::create メソッドでインスタンス化する必要があることは明らかであるため、少なくともコードは自己文書化されます。ModuleFactory::create メソッドで、ClassA コンストラクターの可視性を public に変更し、オブジェクトをインスタンス化してから、可視性を private に戻そうとしましたが、A) エラーが発生し、B) ずさんでスレッドセーフではありません。何かご意見は?
更新の回答: