Latest web development tutorials

Null Object Model

Пустой модель объекта (Null Object Pattern), а пустой объект замещен проверка для экземпляра объекта NULL. Null объекты не проверить нулевые значения, но не реакционному отношения каких-либо действий. Такие Нулевые объекты могут также обеспечить поведение по умолчанию, когда данные не доступны.

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

реализация

Мы создадим пользовательское действие (в данном случае, имя клиента)AbstractCustomerабстрактного класса, и расширяет классы сущностейAbstractCustomerкласса.CustomerFactoryназвание фабрики класса основан на клиенте , чтобы поставить или вернуть объектRealCustomerNullCustomer.

NullPatternDemo,мы продемонстрировать использование классаCustomerFactory, чтобы продемонстрировать использование пустой объектной модели.

Null шаблон объекта UML диаграмма

Шаг 1

Создать абстрактный класс.

AbstractCustomer.java

общественного абстрактного класса AbstractCustomer {
   Запатентованное название строки;
   общественный абстрактный логический isNil ();
   общественного абстрактного Строка GetName ();
}

Шаг 2

Создание расширяет классы сущностей выше класса.

RealCustomer.java

Открытый класс RealCustomer расширяет AbstractCustomer {

   общественного RealCustomer (имя String) {
      this.name = имя;		
   }
   
   @Override
   Строка GetName общественности () {
      вернуть имя;
   }
   
   @Override
   общественного логический isNil () {
      возвращение ложным;
   }
}

NullCustomer.java

Открытый класс NullCustomer расширяет AbstractCustomer {

   @Override
   Строка GetName общественности () {
      вернуться "Недоступно в базе данных клиентов";
   }

   @Override
   общественного логический isNil () {
      возвращает истину;
   }
}

Шаг 3

СозданиеCustomerFactoryкласса.

CustomerFactory.java

Открытый класс CustomerFactory {
	
   общественности статической окончательный String [] = {имена "Роб", "Джо", "Джули"};

   общественности статической AbstractCustomer GetCustomer (имя String) {
      для (INT I = 0; я <names.length; я ++) {
         если (имена [я] .equalsIgnoreCase (имя)) {
            вернуть новый RealCustomer (имя);
         }
      }
      вернуть новый NullCustomer ();
   }
}

Шаг 4

ИспользуйтеCustomerFactory,основываясь на имени клиента , чтобы пройти , чтобы получитьRealCustomerилиNullCustomerобъект.

NullPatternDemo.java

Открытый класс NullPatternDemo {
   государственной статической силы основных (String []) {агдз

      AbstractCustomer customer1 = CustomerFactory.getCustomer ( "Роб");
      AbstractCustomer customer2 = CustomerFactory.getCustomer ( "Боб");
      AbstractCustomer customer3 = CustomerFactory.getCustomer ( "Джули");
      AbstractCustomer customer4 = CustomerFactory.getCustomer ( «Лаура»);

      System.out.println ( "Клиенты");
      System.out.println (customer1.getName ());
      System.out.println (customer2.getName ());
      System.out.println (customer3.getName ());
      System.out.println (customer4.getName ());
   }
}

Шаг 5

Проверьте выход.

Клиенты
обкрадывать
Не имеется в базе данных клиентов
Джули
Не имеется в базе данных клиентов