首页
学习
活动
专区
工具
TVP
发布
精选内容/技术社群/优惠产品,尽在小程序
立即前往

如何摆脱这个Builder实现中的instanceof

要摆脱Builder实现中的instanceof,可以使用多态性。具体来说,可以使用接口和抽象类来实现。

首先,可以定义一个接口或抽象类,该接口或抽象类包含了所有Builder实现中需要的方法。然后,可以让每个Builder实现该接口或抽象类,并实现其中的方法。

在使用Builder实现时,可以将其定义为接口或抽象类的类型,而不是具体的Builder实现。这样,就可以避免使用instanceof来判断Builder实现的类型,而是使用多态性来调用其方法。

例如,假设有一个Builder接口,其中包含了一个build()方法:

代码语言:java
复制
public interface Builder {
    public Object build();
}

然后,可以让每个Builder实现该接口,并实现其中的build()方法:

代码语言:java
复制
public class ConcreteBuilder1 implements Builder {
    public Object build() {
        // 实现Builder1的build()方法
    }
}

public class ConcreteBuilder2 implements Builder {
    public Object build() {
        // 实现Builder2的build()方法
    }
}

在使用Builder实现时,可以将其定义为Builder类型,而不是具体的Builder实现:

代码语言:java
复制
public class Director {
    private Builder builder;

    public Director(Builder builder) {
        this.builder = builder;
    }

    public Object construct() {
        return builder.build();
    }
}

这样,就可以避免使用instanceof来判断Builder实现的类型,而是使用多态性来调用其build()方法。

页面内容是否对你有帮助?
有帮助
没帮助

相关·内容

没有搜到相关的结果

领券