Nous savons tous que si la classe cible est composée de modules, vous pouvez simplement appeler super
dans un nouveau module. Mais que faire si c'est une méthode ordinaire dans une classe?Comment décorer une méthode dans Ruby sans alias_method_chain
class Logger
def message(msg)
puts msg
end
end
Dites, Logger est une classe que je ne peux pas changer (par exemple, c'est dans une gemme). Et je veux que Logger mette une ligne "================" avant chaque message. Comment est-ce que je fais cela dans un beauté façon? Héritage? Agrégation? Comment?
vous pouvez ouvrir la classe ou utiliser modèle décorateur l'ol pour faire . – Gishu