Java编程开发设计模式之--抽象工厂模式(Abstract Factory)

    在工厂方法模式中,创建产品类完全依赖于工厂类本身,一旦有扩展需求,就必须对工厂类进行修改,这其实是违背设计原则中的闭包原则的,因此,在设计思路存在瑕疵。解决这一问题,就得用到本文中将详述的抽象工厂模式。即抽取工厂类接口,创建多个工厂类,这样如有新需要增加的功能,可以直接增加新的工厂类,不需要修改现存代码。先看下面类图:


详细代码如下:

首先建立一个共同接口

public interface Connector {
    public boolean connect(String url);
}
    接着建立两个上面接口的实现类
public class Bluetooch implements Connector {
    @Override
    public boolean connect(String url) {
        System.out.println(String.format("%s.%s called!",this.getClass().getName(),"connect()"));
        return false;
    }
}
public class Httprequest implements Connector {
    @Override
    public boolean connect(String url) {
        System.out.println(String.format("%s.%s called!",this.getClass().getName(),"connect()"));
        return false;
    }
}
     然后提供一个工厂类接口

public interface Producer {
    public Connector produce();
}

    之后就可以根据需要增加工厂类

public class BluetoochFactory implements Producer {
    @Override
    public Connector produce() {
        return new Bluetooch();
    }
}

public class HttprequestFactory implements Producer {
    @Override
    public Connector produce() {
        return new Httprequest();
    }
}
最后测试类

public class WorkClass {
    public void test()
    {

        Producer producer = new BluetoochFactory();
        Connector connectorBluetooch = producer.produce();
        connectorBluetooch.connect("bluetooch://");
    }
}
 
    输出:
designpattern.creator.Bluetooch.connect() called!
抽象工厂模式的优势不言自明,可扩展性强,对于一些新增加功能,比如,新增加Socket通信类只需要做一个实现类实现Connector接口,再同时做一个工厂类,实现Producer 接口,完工!无需去改动已有的代码。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值