Cela semble être une approche raisonnable. La raison pour laquelle vous ne voulez pas utiliser un trop grand nombre de classes statiques/méthodes est que cela vous éloigne de la programmation orientée objet, et plus dans le domaine de la programmation structurée.
Dans votre cas où vous êtes tout simplement la transformation de A à B, de dire tout ce que nous faisons est en train de transformer le texte pour aller de
"hello" =>(transform)=> "<b>Hello!</b>"
Ensuite, une méthode statique aurait du sens.
Toutefois, si vous êtes en invoquant ces méthodes statiques sur un objet fréquemment et il a tendance à être unique pour de nombreux appels (par exemple, la façon dont vous l'utilisez dépend de l'entrée), ou il fait partie de la nature du comportement de l'objet, il serait sage de faire partie de l'objet et du maintien d'un état de il. Une façon de le faire serait de l'appliquer comme une interface.
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()
}
Edit: Un bon exemple de la grande utilisation de méthodes statiques html méthodes d'aide à Asp.Net MVC ou Ruby. Ils créent les éléments html qui ne sont pas liés au comportement d'un objet, et sont donc statiques.
Edit 2: modification de la programmation fonctionnelle, de la programmation structurée (pour une raison que je n'ai pas compris), des accessoires de Torsten pour le pointage.