اغيا طراز كائن
نموذج فارغ الكائن (خالية كائن نمط)، وكائن فارغ استبداله الاختيار على سبيل المثال الكائن فارغة. كائنات فارغة لم يتم التحقق من القيم الخالية، ولكن ليس رد فعل على علاقة من أي عمل. ويمكن لهذه الأشياء خالية أيضا توفير السلوك الافتراضي عندما لا تتوفر بيانات.
نموذج كائن فارغ، ونحن إنشاء كيان لفئة مجردة وتوسيع هذه الفئة لأداء مجموعة متنوعة من العمليات، ولكن أيضا إنشاء لم فئة لا تفعل أي من هذه الفئة كائن فارغة تنفذ فئة الكائن فارغة بسهولة استخدام في مكان يحتاج للتحقق من القيم الخالية.
تحقيق
سوف نقوم بإنشاء إجراء مخصص (في هذه الحالة، اسم العميل)AbstractCustomerفئة مجردة، وتمتد الطبقات كيان الطبقةAbstractCustomer.CustomerFactory اسم الفئة المصنع على أساس العملاء لتقديم أو إرجاع كائنRealCustomerNullCustomer.
NullPatternDemo،ونحن لشرح استخدام الطبقةCustomerFactoryللتدليل على استخدام نموذج كائن فارغ.
خطوة 1
إنشاء فئة مجردة.
AbstractCustomer.java
فئة مجردة العامة AbstractCustomer { اسم سلسلة المحمية؛ الجمهور isNil منطقية مجردة ()؛ العام سلسلة getName المجرد ()؛ }
خطوة 2
إنشاء تمتد الطبقات كيان فوق الطبقة.
RealCustomer.java
الطبقة العامة RealCustomer يمتد AbstractCustomer { RealCustomer الجمهور (اسم سلسلة) { this.name = الاسم؛ } Override جمهور سلسلة getName () { العودة الاسم؛ } Override isNil منطقية الجمهور () { عودة كاذبة. } }
NullCustomer.java
الطبقة العامة NullCustomer يمتد AbstractCustomer { Override جمهور سلسلة getName () { العودة "غير متوفر في قاعدة بيانات العملاء". } Override isNil منطقية الجمهور () { العودة الحقيقية. } }
خطوة 3
إنشاء فئةCustomerFactory.
CustomerFactory.java
الطبقة العامة CustomerFactory { سلسلة النهائي ثابتة العامة [] أسماء = { "روب"، "جو"، "جولي"}؛ ساكنة العام AbstractCustomer getCustomer (اسم سلسلة) { ل(كثافة العمليات ط = 0؛ ط <names.length، وأنا ++) { إذا (أسماء [أنا] .equalsIgnoreCase (اسم)) { العودة RealCustomer الجديد (اسم)؛ } } العودة NullCustomer الجديدة ()؛ } }
خطوة 4
استخدامCustomerFactory،استنادا إلى اسم العميل لتمريرها إلى الحصول علىRealCustomerأوNullCustomerالكائن.
NullPatternDemo.java
الطبقة العامة NullPatternDemo { (وسائط سلسلة []) العامة ساكنة باطلة الرئيسية { 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
تحقق من الانتاج.
الزبائن سلب غير متوفر في قاعدة بيانات العملاء جولي غير متوفر في قاعدة بيانات العملاء