Null Object Model
modelo vazio objecto (Objecto Padrão nulo), e um objeto de verificação substituído vazia, por exemplo, NULL objeto. objetos nulos não são verificar os valores nulos, mas não a reação de um relacionamento de qualquer ação. Tais objetos nulos também pode fornecer comportamento padrão quando os dados não está disponível.
modelo de objeto vazio, criamos uma entidade designada da classe abstrata e estender esta classe para executar uma variedade de operações, mas também criar uma classe não fazer qualquer dessa classe objeto vazio implementa a classe objeto vazio perfeitamente utilização em lugar precisa verificar se há valores nulos.
realização
Nós vamos criar uma ação personalizada (neste caso, o nome do cliente)AbstractCustomerclasse abstrata, e estende as classes de entidade de classeAbstractCustomer.CustomerFactory nome da classe fábrica baseada no cliente para entregar ou devolverRealCustomerNullCustomer objeto.
NullPatternDemo,demonstramos o uso de classeCustomerFactorypara demonstrar o uso de um modelo de objeto vazio.
passo 1
Criar uma classe abstrata.
AbstractCustomer.java
public abstract class AbstractCustomer { protegidas String nome; isNil boolean public abstract (); Cadeia getName abstrato pública (); }
passo 2
Criar estende as classes de entidade acima da classe.
RealCustomer.java
classe pública RealCustomer estende AbstractCustomer { RealCustomer pública (String nome) { this.name = nome; } @Override Cadeia getName pública () { nome de retornar; } @Override isNil boolean pública () { return false; } }
NullCustomer.java
classe pública NullCustomer estende AbstractCustomer { @Override Cadeia getName pública () { retornar "Não disponível no Banco de Dados do Cliente"; } @Override isNil boolean pública () { return true; } }
passo 3
Criar classeCustomerFactory.
CustomerFactory.java
CustomerFactory classe pública { público static final String [] names = { "Rob", "Joe", "Julie"}; public static AbstractCustomer GetCustomer (String nome) { for (int i = 0; i <names.length; i ++) { if (nomes [i] .equalsIgnoreCase (nome)) { retornar nova RealCustomer (nome); } } retornar nova NullCustomer (); } }
passo 4
UseCustomerFactory,com base no nome do cliente para passar para chegarRealCustomerouNullCustomerobjeto.
NullPatternDemo.java
NullPatternDemo classe pública { main (String [] args) public static void { AbstractCustomer customer1 = CustomerFactory.getCustomer ( "Rob"); AbstractCustomer customer2 = CustomerFactory.getCustomer ( "Bob"); AbstractCustomer customer3 = CustomerFactory.getCustomer ( "Julie"); AbstractCustomer customer4 = CustomerFactory.getCustomer ( "Laura"); System.out.println ( "Clientes"); System.out.println (customer1.getName ()); System.out.println (customer2.getName ()); System.out.println (customer3.getName ()); System.out.println (customer4.getName ()); } }
passo 5
Verifique saída.
clientes roubar Não disponível no banco de dados do cliente Julie Não disponível no banco de dados do cliente