Метод сплоченности - PullRequest
       19

Метод сплоченности

1 голос
/ 03 мая 2011

У меня есть постоянные объекты, которые сохраняются в БД (вставка, обновление, удаление). Лучше ли объединить эту логику в одном методе - сохранить или иметь 3 отдельных метода для сцепления?

Ответы [ 3 ]

1 голос
/ 03 мая 2011

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

Возможно, вы захотите иметь класс, предназначенный для этой цели, который имеет эти 3 метода по той же причине.

Относительно сплоченности, 3 отдельных метода, которые связаны (как в вашем случае) и размещены в классе, сохранят хорошую сплоченность, но, пожалуйста, имейте в виду и другие принципы проектирования класса .

0 голосов
/ 03 мая 2011

Я бы предпочел иметь один общедоступный метод Save, чтобы эта функция вызывала метод Insert, Update или Delete в зависимости от ситуации.Эти методы могут быть защищенными или частными, независимо от того, что соответствует дизайну.

[Редактировать]: Я должен добавить, что я бы, вероятно, не поместил этот код в класс модели, а перенес бы его в свой собственный класс репозитория.Я обнаружил, что простота использования класса модели обеспечивает максимальную гибкость вашего дизайна.

0 голосов
/ 03 мая 2011

Это действительно отчасти зависит. Вообще говоря, я бы держал удаление отдельно, и я предпочитаю один метод для обновлений / вставок.

...