2011-12-15 16 views
0

モジュールが状態を持つのは悪い考えですか?以下ルビモジュールにおいて

include 'printer' 

module A 

    def create(params) 
    temp = params 
    @object = Printer.init(temp) #this returns a hash with a collection of objects 
    end       #{<object1>,<object2>,...} 

end 

も含まファイルプリンタはinitと呼ばれるクラスのメソッドを呼び出すことにより、ハッシュを返すPrinterと呼ばれるクラスがあり...作成し、適切なメソッド呼び出しに、ハッシュ内のオブジェクトを格納します。

最初に:このモジュールには状態がありますか?はいの場合、どうして国家と行動を一緒にするのは悪い考えですか、それは避けられないのですか?

+2

状態と振る舞いはもちろん混合することができるが、なぜあなたの代わりに、クラスのためのモジュールを使用するのでしょうか? – riffraff

+0

モジュールまたはクラスを使用する場合は重要です...私が探しているのは、モジュール内のデータを変更するためのメソッドだけです。 – pankajdoharey

+5

クラスを使用する理由は、データを保持するために単一のインスタンスを使用できることです。これは、状態をコードの単一ビットにローカルに保つことができ、必要が生じた場合には最終的に他のインスタンスを使用できることを意味します。モジュールにデータを格納している場合は、すべてのコードで単一のグローバル共有状態を使用する必要があり、モジュール性、保守性、および拡張性の問題が発生します。 – riffraff

答えて

関連する問題