Являются ли аргументы NULL плохой практикой?

Является ли плохой практикой передавать аргумент NULL методам или, другими словами, если у нас есть определения методов, которые допускают аргумент NULL в качестве допустимого аргумента.

Предположим, мне нужны два метода 1. получить список всех компаний 2. Получить список компаний на основе фильтра.

У нас может быть два метода, как показано ниже

    List<Company> getAllCompaniesList();
    List<Company> getCompaniesList(Company companyFilter);

, или один единственный метод

    List<Company> getCompaniesList(Company companyFilter);

здесь во втором случае, если аргумент равен NULL, тогда метод возвращает список все компании.

Помимо вопроса о надлежащей практике, на практике я вижу еще одну проблему с более поздним подходом, который объясняется ниже.

Я реализую Spring AOP, в котором я хочу иметь некоторые проверки таких аргументов, как 1. Аргумент NULL? 2. Размер коллекции равен 0?

Есть некоторые сценарии, в которых мы не можем иметь нулевой аргумент вообще, как для метода

    void addBranches(int companyId, List<Branch>);

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

@Before(argNames="args", value="execution(* *)")
void beforeCall(JoinPoint joinPoint ,Object[] args )
{ 
           foreach(Object obj in args)
           {
                 if(obj == NULL)
                 {
                     throw new Exception("Argument NULL");
                 } 
           }   
}

Но Проблема, с которой я столкнулся, заключается в том, что я определил некоторые методы, которые должны принимать аргумент NULL для нескольких функций одного единственного метода, как упоминалось выше для метода List getCompaniesList (Company companyFilter); Поэтому я не могу применять АОП единообразно для всех методов, и ни одно выражение для соответствия имен методов здесь не будет полезно.

Пожалуйста, дайте мне знать, если требуется дополнительная информация или проблема недостаточно описательна.

Спасибо, что прочитали мою проблему и обдумали ее.

19
задан Kirk Woll 26 December 2010 в 19:29
поделиться