class A
private
def initialize
puts "wtf?"
end
end
A.new #still works and calls initialize
とRubyでクラスコンストラクタをprivateにするには?
class A
private
def self.new
super.new
end
end
は全く
を動作しませんので、正しい方法は何ですか?私はnew
をプライベートにして、ファクトリメソッドで呼びたいと思っています。あなたがしようとしたコードの2番目のチャンクはほとんど右である
class A
private_class_method :new
end
私はあなたが望むものは可能ですが、理論的には、プライベートであるためファクトリメソッドから呼び出すことはできません。シングルトンを作成しようとしていますか?あるいは制御パターンを反転させるか? – Matt