Уместно ли наследование здесь? - PullRequest
0 голосов
/ 28 сентября 2018

У меня есть один класс, который создает объект (блок) и содержит стратегии для изменения его содержимого.Я думаю, что это должно быть два класса, однако, поскольку я обычно использую FP, я не уверен, как заставить box class работать с solver class, который содержит стратегии для переупорядочения содержимого коробки.

Может ли box быть подклассом solver?Это не кажется правильным.Если нет, то как я могу заставить их работать вместе?

class Box(object):        
    def __init__(self, contents, size):
         self.contents = contents
         self.size = size

    def fillBox (self, contents):
        pass


class Solver(object):        
    def __init__(self, boxObject, strategy):
        self.box = boxObject
        self.strategy = strategy

        if self.strategy == strategy1:
            self.strategy1()

    def strategy1 (self):
        // execute some algorithm manipulating the contents of the box

1 Ответ

0 голосов
/ 28 сентября 2018

Обычный вопрос, который нужно задать себе: «____ это ____?»где первый пробел - это предложенный подкласс, второй - предложенный суперкласс, в данном случае «Is Box a Solver?»Если ответ «нет» (что, по-видимому, здесь имеет место), наследование неуместно.То, что вы сделали, чтобы Solver принял Box в качестве аргумента, который становится атрибутом экземпляра, является правильным способом решения этой проблемы.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...