Это на самом деле язык агностик. Но я дам вам контекст в python.
У меня этот родительский класс
class Mammal(object):
def __init__(self):
""" do some work """
def eat(self, food):
"""Eat the food"""
way_to_eat = self._eating_method()
self._consume(food)
def _eating_method(self):
"""Template method"""
def _consume(self, food):
"""Template method"""
Здесь eat
единственный публичный метод, тогда как _consume
и _eating_method
- фактически защищенные методы, которые будут реализованы дочерними классами.
Что вы проверите, когда напишете только класс Mammal
?
Очевидно, все 4 метода.
Теперь представим ребенка
class Tiger(Mammal):
def _eating_method(self):
"""Template method"""
def _consume(self, food):
"""Template method"""
Посмотрите на этот класс. Он имеет только 2 защищенных метода.
Должен ли я проверить все 4 метода Tiger
(в том числе 2 унаследованных) или просто проверить введенные изменения (только переопределить 2 метода)?
Что такое идеальный случай?