Я предполагаю, что это больше вопрос шаблона проектирования, чем вопрос кодирования. Итак, начнем... У меня есть приложение для Android, содержащее множество классов и действий. У меня есть классы, сгруппированные внутри каталога в соответствии с их функциями, например: DownloadTask, ScanTask внутри каталога AsyncTask. Затем у меня есть все действия внутри каталога действий и так далее. Но я замечаю, что большая часть моего кода повторяется. Например, у меня есть 3 действия PingActivity, NetstatActivity, WhoisActivity, которые в основном выглядят одинаково с точки зрения кода. Единственная разница заключается в том, что они используют команду, например: ping host для PingActivity, netstat -ant для NetstatActivity и т. д. Все они создают экземпляры представлений из макета xml, который выглядит очень похоже, поскольку все, что у меня есть, это EditText, кнопка и TextView. А классы вызывают AsyncTask для выполнения фонового процесса отдельно от основного потока. За исключением WhoisActivity, которые используют службу rest API для запроса доменного имени. Итак, мой вопрос: как я могу упростить свой дизайн? могу ли я использовать один класс и передать команду или API в зависимости от того, какой пункт меню выбрал пользователь? Как мне это сделать? Спасибо
@Code-Apprentice Много кода для публикации, у меня есть как минимум 10 классов. Можно вместо этого разместить ссылку на github
Я предлагаю проверить их справочный центр для получения рекомендаций по публикации. По крайней мере, вы можете сократить код. Например, вы упомянули, что у вас есть 3 похожих занятия. Просто покажите два из них.
Всего несколько предложений, по моему скромному мнению...
Сказав это, если есть фрагменты кода, которые выглядят (и на самом деле) одинаковыми, попытайтесь выделить их в службы, которые внедряются в ваши классы. Просто сделайте нет, попытайтесь уменьшить сложность, поместив весь код, который выглядит похожим, в класс/метод с несколькими параметрами и некоторыми блоками if-else/switch, потому что в долгосрочной перспективе это обычно намного хуже, чем наличие множества маленьких и организованных классов. .
Я предлагаю разместить сообщение на нашем дочернем сайте Обзор кода, где вы можете получить отзывы о рабочем коде.