CRUD - это действительно общий подход к программированию на основе интерфейса. Возьмите два конкретных класса, которые реализуют интерфейс CRUD: Employee и Building.
Теперь представьте, как ваш код будет выглядеть на основе параметров:
Employee employeeObj = new Employee();
Building buildingObj = new Building();
string firstName = "Bob";
employeeObj.Create(firstName);
А как насчет здания?
BuildingTypes buildingType = BuildingTypes.One;
building.Create(buildingType);
Woops ... как вы предполагаете реализовать интерфейс CRUD с другими параметрами? Создавать перегрузки? Больше интерфейсов? Как насчет двух параметров (имя, фамилия)?
Это будет так уродливо и быстро .... потому что, как только вы используете параметры с интерфейсом CRUD, у вас появляется более чем одна причина для изменения, что снижает согласованность проекта.
Давайте попробуем использовать наши параметры на основе объектов / экземпляров ...
Employee empObj = new Employee();
empObj.FirstName = "Bob";
empObj.Create();
Building buildingObj = new Building();
buildingObj.BuildingType = BuildingTypes.One;
buildingObj.Create();
С простым CRUD и без параметров можно даже посыпать полиморфизмом:
someObj.Create();
Это также приводит к инкапсуляции композиции, развязке, SRP и т. Д. *