ヌルオブジェクトモデル2024 年の最新の入門チュートリアル。このコースでは 実現, について学習できます。
空のオブジェクトモデル(ヌルオブジェクトパターン)、およびNULLオブジェクトインスタンスに空のオブジェクトの置換チェック。 ヌルオブジェクトは、反応に任意のアクションの関係をnull値のチェックではなく、されていません。 データが利用できない場合には、このようなヌルオブジェクトは、デフォルトの動作を提供することができます。
空のオブジェクトモデルでは、我々は抽象クラスの指定されたエンティティを作成し、各種操作を実行するには、このクラスを拡張するだけでなく、クラスを作成するには、この空のオブジェクトクラスのいずれかの操作を実行しませんでしたシームレス空のオブジェクトクラスを実装場所での使用は、NULL値を確認する必要があります。
私たちは(この場合は、顧客の名前)カスタムアクションAbstractCustomer抽象クラスを作成し、エンティティクラスAbstractCustomerクラスを拡張します。 顧客に基づいてCustomerFactoryファクトリクラス名を引き渡すかRealCustomerNullCustomerオブジェクトを返します。
NullPatternDemoは、我々は空のオブジェクトモデルの使用を実証するためにCustomerFactoryクラスの使用を示します。
抽象クラスを作成します。
AbstractCustomer.java
パブリック抽象クラスAbstractCustomer { 保護された文字列名。 パブリック抽象ブールisNil(); パブリック抽象文字列のgetName(); }
クラスの上のエンティティクラスを拡張作成します。
RealCustomer.java
パブリッククラスRealCustomerはAbstractCustomerを{拡張します 公共RealCustomer(文字列名){ this.name =名; } @Override 公共の文字列のgetName(){ 名前を返します。 } @Override パブリックブールisNil(){ falseを返します。 } }
NullCustomer.java
パブリッククラスNullCustomerはAbstractCustomerを{拡張します @Override 公共の文字列のgetName(){ 「顧客データベースでは使用できません "を返します。 } @Override パブリックブールisNil(){ trueを返します。 } }
CustomerFactoryクラスを作成します。
CustomerFactory.java
パブリッククラスCustomerFactory { 公共のstatic final String []型名= { "ロブ"、 "ジョー"、 "ジュリー"}; パブリック静的AbstractCustomer getCustomer(文字列名){ 以下のために(int型私= 0; iはnames.length <;私は++){ 場合(名前[i]が.equalsIgnoreCase(名)){ 新しいRealCustomer(名前)を返します。 } } 新しいNullCustomerを返します(); } }
RealCustomerまたはNullCustomerオブジェクトを取得するために渡すために、クライアントの名前に基づいてCustomerFactoryを、使用してください。
NullPatternDemo.java
パブリッククラスNullPatternDemo { 公共の静的な無効メイン(文字列[] args){ 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()); } }
出力を確認します。
お客様 ロブ 顧客データベースで使用できません ジュリー 顧客データベースで使用できません