设计模式之空对象设计模式

一、概念

  • 空对象设计模式就是对不存在的对象的一个检查,是个默认为。
  • 目的
    • 为了解决系统出现异常导致系统停止运行。

二、实现

  • 条件
    • java
  • 场景
    • 以切换数据库连接地址为场景。
  • 实现
    • 数据库抽象类,类名:AbstractDataBase
          package com.NullObject;
          public abstract class AbstractDataBase {
              protected  String  Name;
              public  void  GetUrl()
              { 
              }
          }    
      
    • MySql数据库类,类名:MySQLDataBase
          package com.NullObject;
          public class MySQLDataBase extends  AbstractDataBase {
              public  MySQLDataBase(String  _Name)
              {
                  Name = _Name;
              }
              @Override
              public void GetUrl() {
                 System.out.print(Name+":数据库URL!");
              }
          }    
      
    • Oracle数据库类,类名:OracleDataBase
          package com.NullObject;
          public class OracleDataBase extends AbstractDataBase {
              public OracleDataBase(String _Name)
              {
                  Name = _Name;
              }
              @Override
              public void GetUrl() {
                   System.out.print(Name+":数据库URL!");
              }
          }    
      
    • SqlServer数据库类,类名:SqlServerDataBase
          package com.NullObject;
          public class SqlServerDataBase extends  AbstractDataBase {
              public SqlServerDataBase(String _Name)
              {
                 Name = _Name;
              }
              @Override
              public void GetUrl() {
                System.out.print(Name+":数据库URL!");
              }
          }
      
      
    • 工厂类,类名:DataBaseFactory
          package com.NullObject;
          public class DataBaseFactory {
              private  static String[]  array = new String[]{"MySQL","Oracle","SqlServer"};
              public static AbstractDataBase getObject(String typ)
              {
                  if (typ.equals(array[0]))
                  {
                      return new MySQLDataBase(typ);
                  }
                  else if (typ.equals(array[1]))
                  {
                      return new OracleDataBase(typ);
                  }
                  else if (typ.equals(array[2]))
                  {
                      return new SqlServerDataBase(typ);
                  }
          
                  return new NullDataBase(typ);
              }
          }    
      
    • 入口类,类名:Main
           package com;
          import com.NullObject.AbstractDataBase;
          import com.NullObject.DataBaseFactory;
          
          public class Main {
          
              public static void main(String[] args) { 
                  AbstractDataBase dataBase = DataBaseFactory.getObject("Oracle");
                  dataBase.GetUrl();
              }
          }   
      

三、优缺点

  • 优点
    • 可以检查是不存在的对象,避免出现异常,导致系统停止运行。
  • 缺点
    • 模式使用时应谨慎。因为它可以使错误显示为正常程序执行。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值