разница между аудиоданными в файлах .aac и .m4a на уровне байтов

Операторы IMO switch не являются bad , но их следует избегать, если это возможно. Одним из решений было бы использовать Map, где ключи являются командами, а значения Command - объектами с помощью метода execute(). Или List, если ваши команды являются числовыми и не имеют пробелов.

Однако, как правило, вы должны использовать switch заявления при реализации шаблонов проектирования; одним примером может быть использование шаблона цепочки ответственности для обработки команд, заданных любой командой «id» или «value». (Был также отмечен шаблон Strategy .) Однако в вашем случае вы также можете изучить шаблон Command .

В основном, в OOP, вы попытаетесь использовать другие решения, чем полагаться на блоки switch, которые используют парадигму процедурного программирования. Однако, когда и как использовать это - это ваше решение. Я лично часто использую блоки switch при использовании шаблона Factory и т. Д.


Определение организации кода:

  • a пакет представляет собой группу классов с когерентным API (ex: Collection API во многих фреймах)
  • класс представляет собой набор когерентных функциональных возможностей (например: класс Math ...
  • метод является функциональностью a , он должен делать только одно и только одно. (например: добавление элемента в список может потребовать, чтобы увеличить указанный список, и в этом случае add метод будет полагаться на другие методы для этого и не будет выполнять эту операцию сам, потому что это не контракт).

Поэтому, если ваш оператор switch выполняет различные операции, вы « нарушает » это определение, тогда как использование шаблона проектирования не соответствует каждой операции в собственном классе (это собственный набор функциональных возможностей).

2
задан user13267 18 January 2019 в 10:47
поделиться