我习惯了 c#/.net,所以我形成了一个类型安全的背景。我正在使用红宝石。我想创建一个类(ClassA),它有一个私有的(如果我需要,我愿意接受protected)构造函数。原因是,我想创建一个工厂 (FactoryModule::create) 来控制所有 ClassA 对象的实例化。我意识到这在 Ruby 中并不是万无一失的(?),但至少代码将是自文档化的,因为基于代码和 ClassA 必须通过 FactoryModule::create 方法实例化的测试是显而易见的。在 ModuleFactory::create 方法中,我尝试将 ClassA 构造函数的可见性更改为公共,实例化对象,然后将可见性更改回私有,但 A)我收到错误,B)它是草率且不是线程安全的。有什么想法吗?
更新答案: