それは合理的なアプローチのようです。あまりにも多くの静的クラス/メソッドを使用したくない理由は、オブジェクト指向プログラミングから離れ、構造化プログラミングの領域に移行することになるからです。
A を B に変換するだけの場合、テキストを変換するだけだとします。
"hello" =>(transform)=> "<b>Hello!</b>"
次に、静的メソッドが理にかなっています。
ただし、オブジェクトでこれらの静的メソッドを頻繁に呼び出していて、多くの呼び出しで一意になる傾向がある場合 (たとえば、使用方法が入力に依存する場合)、またはオブジェクト固有の動作の一部である場合は、それをオブジェクトの一部にして、その状態を維持するのが賢明です。これを行う 1 つの方法は、インターフェイスとして実装することです。
class Interface{
method toHtml(){
return transformed string (e.g. "<b>Hello!</b>")
}
method toConsole(){
return transformed string (e.g. "printf Hello!")
}
}
class Object implements Interface {
mystring = "hello"
//the implementations of the interface would yield the necessary
//functionality, and it is reusable across the board since it
//is an interface so... you can make it specific to the object
method toHtml()
method toConsole()
}
編集: 静的メソッドの優れた使用例の 1 つは、Asp.Net MVC または Ruby の html ヘルパー メソッドです。これらは、オブジェクトの動作に関連付けられていない、したがって静的な html 要素を作成します。
編集2:関数型プログラミングを構造化プログラミングに変更しました(何らかの理由で混乱しました)、それを指摘してくれたTorstenへの小道具。