J'ai une question en deux parties
Meilleur entrainement
- J'ai un algorithme qui effectue une opération sur une structure de données à l'aide de l'interface publique
- Il s'agit actuellement d'un module avec de nombreuses méthodes statiques, toutes privées à l'exception de la méthode d'interface publique unique.
- Il y a une variable d'instance qui doit être partagée entre toutes les méthodes.
Voici les options que je peux voir, quelle est la meilleure?:
- Module avec méthodes statiques ('module' en ruby)
- Classe avec méthodes statiques
- Module Mixin pour inclusion dans la structure de données
- Refactoriser la partie de l'algorithme qui modifie cette structure de données (très petite) et en faire un mixin qui appelle les méthodes statiques du module d'algorithme
Partie technique
Existe-t-il un moyen de créer une méthode Module privée ?
module Thing
def self.pub; puts "Public method"; end
private
def self.priv; puts "Private method"; end
end
Le private
dedans ne semble pas avoir d'effet , je peux toujours appeler Thing.priv
sans problème.
private
n'affecte que les méthodes d'instance, pas les méthodes de classe. utiliser à la private_class_method
place:module Thing; def self.pub; end; private_class_method :pub; end