美文网首页
空对象模式

空对象模式

作者: 金煜博 | 来源:发表于2021-05-27 23:58 被阅读0次

什么是空对象模式

用一个空对象取代 null,有效的防止空指针报错。这样的空对象可以在数据不可用的时候提供自定义的错误提示

示例图

图片.png

示例场景

通过简单工厂模式根据鞋子品牌制造不同类型和鞋码的鞋子,当传递的品牌信息找不到时返回指定的错误提示(空对象)

示例代码

1.创建Shoe接口类

public interface Shoe {
    //判断是否为null
    boolean isNull();
    //展示信息
    void show();
}

2.创建NullShoe空对象鞋子类

public class NullShoe implements Shoe {
    @Override
    public boolean isNull() {
        return true;
    }

    @Override
    public void show() {
        System.out.println("制造鞋子失败,请查看参数是否正确");
    }
}

3.创建ConcreteShoe具体鞋子对象实现类

public class ConcreteShoe implements  Shoe {

    private String shoeType;// 鞋子类型
    private int shoeSize; //鞋子尺寸

    public ConcreteShoe(String shoeType, int shoeSize) {
        this.shoeType = shoeType;
        this.shoeSize = shoeSize;
    }

    @Override
    public boolean isNull() {
        return false;
    }

    @Override
    public void show() {
        System.out.println("鞋子类型为:"+shoeType+"--------------鞋子尺寸为:"+shoeSize+"码");
    }
}

4.创建ShoeFactory生产鞋子工厂类

public class ShoeFactory {
    //根据品牌创建鞋子
    public Shoe findBrand(String brand) {
        Shoe shoe = null;
        switch (brand) {
            case "anta":
                shoe = new ConcreteShoe("运动鞋", 40);
                break;
            case "lining":
                shoe = new ConcreteShoe("板鞋", 42);
                break;
            default:
                shoe = new NullShoe();
                break;
        }
        return shoe;
    }
}

5.创建client启动类

public class Client {
    public static void main(String[] args) {
        ShoeFactory shoeFactory = new ShoeFactory();
        Shoe shoe =  shoeFactory.findBrand("anta");
        shoe.show();
        Shoe shoe2 =  shoeFactory.findBrand("lining");
        shoe2.show();
        Shoe shoe3 =  shoeFactory.findBrand("xxx");
//        if(shoe3.isNull()){
//            System.out.println("参数信息错误");
//            return;
//        }
        shoe3.show();

    }
}

6.运行结果


图片.png

相关文章

  • 空对象模式,这个模式怎么用?

    空对象模式,还有这种模式? 空对象模式,应用在什么场景呢? 空对象模式(Null Object Pattern),...

  • 行为型模式-空对象模式

    空对象模式: 在空对象模式中,一个空对象取代NULL对象实例的检查。Null对象不是检查空值,而是反应一个不做任何...

  • 空对象模式

    一. 概念 在空对象模式(Null Object Pattern)中,一个空对象取代 NULL 对象实例的检查。N...

  • 空对象模式

  • 空对象模式

    Null Object Pattern,作为一种被遗忘的设计模式,却有着不能被遗忘的作用。(1)它可以加强系统的稳...

  • 空对象模式

    1.概述 平时开发中避免过多的判空检查,空对象模式很好的避免了这种情况出现,当为空或者不存在的时候返回一个空对象,...

  • 空对象模式

    概述 在这个快速教程中,我们将看一下Null对象模式,这是设计模式的一个特例,一个经常被我们遗忘的特例。我们将描述...

  • 空对象模式

    前言: 因为现在设计模式在网络上已经泛滥,但是还是有好多程序员不能够灵活的运用设计模式,这个是对设计模式简单的介绍...

  • 空对象模式

    什么是空对象模式 用一个空对象取代 null,有效的防止空指针报错。这样的空对象可以在数据不可用的时候提供自定义的...

  • 空对象模式(Null Object Pattern)

    本文节选自《设计模式就该这样学》 1空对象模式的定义 空对象模式(Null Object Pattern)不属于G...

网友评论

      本文标题:空对象模式

      本文链接:https://www.haomeiwen.com/subject/khsjsltx.html