概念:实例化对象的时候不再使用new Object() 形式,可以根据用户的选择来实例化相关的类。对于客户端来说,去除了具体的类的依赖。只需要给出具体实例的描述给工厂,工厂就会自动返回具体的对象。

 

实现:

interface Car{
    public void drive();
}
class Bus implements Car{
    @Override
    public void drive(){
        System.out.println("I am a bus.");
    }
}
class Bike implements Car{
    
    @Override
    public void dirve(){
        System.out.println("I am a bike.");
    }
}
class Factory{
    public static Car getInstance(String className){
        //通过equal方法在确定类的实例
        Car car = null;
        if("bus".equals(className)){
            car = new Bus();
        }
        if("bike".equals(className)){
            car = new Bik();
        }
        return car;
    }
}
public class DesignModel{
    public static void main(String[] args){
        Car a = null;//定义接口对象
        a = Factory.getInstance(args[0]);//通过工厂获取实例
        if(a != null){ //判断对象是否为空
            a.drive();调用方法
        }
    }
}

 

最后修改于 2020-04-01 19:54:56
如果觉得我的文章对你有用,请随意赞赏
扫一扫支付
上一篇