Причина, по которой вы вынуждены не использовать static
методы в этом задании, состоит в том, чтобы заставить вас использовать более объектно-ориентированный подход.
Как насчет создания Command
абстрактного базового класса (или интерфейса, в зависимости от того, что вы уже сделали в своем курсе), а затем создания различных классов для каждой конкретной команды, которую вы имеете, так что RegisterDogCommand
, ListDogsCommands
, UpdateAgeCommand
, RemoveDogCommand
, которые распространяются на Command
.
Каждый Command
может реализовывать метод execute()
(может быть абстрактным методом в Command
, переопределенным каждым конкретным классом), который делает все, что ему нужно.
В вашей функции main()
, где у вас есть switch-case
, вы просто создаете правильный объект Command
, а затем вызываете execute()
.
Это также называется шаблоном команды .
Как указано в других ответах, класс с вашим методом main()
также может быть создан, а функции, которые у вас есть, могут быть вызваны в экземпляре ProgramSkeleton
(таким образом, необязательно, чтобы он был static
как таковой). Не уверен, какова была цель вашего назначения (просто удалить static
или реализовать команды объектно-ориентированным способом).