Шаблон Factory Design действует как фабрика и генерирует различные виды объектов во время выполнения согласно вашему запросу. Таким образом, контроль осуществляется во время выполнения, и вы можете выбрать объект, который вам требуется во время выполнения. Таким образом, связь между объектами будет уменьшена.
С другой стороны, шаблон проектирования Стратегии позволяет лучше контролировать иерархические структуры с помощью отношения «имеет отношение к« является ». Потому что, если мы склонны использовать наследование (is a) в более сложном сценарии, то нам, возможно, придется переопределить методы, унаследованные от поколений, и это позволит избежать повторного использования кода.
Допустим, вы создали класс Animal (или интерфейс) и у вас есть метод move.
И вы надеетесь создать класс птиц, расширив его. Таким образом, вы добавите летающие объекты под методом move (). Но как обстоят дела с пингвинами? У них будут возможности для ходьбы.
Таким образом, каждый раз, когда вы создаете животное, расширяя класс Animal, вам придется снова и снова переопределять метод move (). Вы можете четко понимать, что метод move () более уязвим для изменений, поэтому рекомендуется отделять изменяющуюся часть от основных кодов.
Просто мы можем создать отдельную иерархию для методов move (). Вы можете назначить связанный метод move () для объекта с помощью методов установки. Таким образом, контроль передается во время выполнения. Следующая диаграмма иллюстрирует этот факт;
Ниже приведены 2 из моих сообщений в блоге, если хотите, можете обратиться к ним для получения более подробной информации.
Шаблон фабричного дизайна
Шаблон стратегии проектирования