3
attr_accessorが設定されていると仮定して、クラス内からインスタンス変数にアクセスするのがベストプラクティスであるかどうか不思議です。Rubyインスタンス変数へのアクセス
class Test
attr_accessor :user
def initializer(user)
@user = user
end
def foo
@user
end
end
またはインスタンス変数(@user)またはゲッターメソッド(試験#ユーザ)によってそう
class Test
attr_accessor :user
def initializer(user)
@user = user
end
def foo
self.user
end
end
?
アイデアはルビーに依存しません。プロパティがフィールドに優先される理由については、http://stackoverflow.com/questions/3069901を参照してください。 – Gishu
attr_accessorが内部でのみ追加された場合はどうなりますか?私は外部アクセスのためにこれらの属性を必要としないので、その時点でattr_accessorを追加する必要はないので、インスタンス変数を内部的に使用して取得/設定する方が理にかなっていますか? – user577808
@ user577808同じ原則がクラス内で適用されますが、リファクタリングが容易なため、コンテキストが小さいほど重要性は低くなります。しかし、クラスの最小インタフェースを公開することは良い考えです。この場合、get/setを使用する場合はプライベートにする必要があります。 – Mori