设计模式第三节:Abstract Factory(抽象工厂)

本文介绍抽象工厂模式的设计理念,通过创建一系列相关或相互依赖的对象接口,解决了工厂方法模式中的闭包原则问题。提供了代码示例展示如何实现抽象工厂类及具体工厂类。

1:抽象工厂描述:

工厂方法模式有一个问题就是,类的创建依赖工厂类,也就是说,如果想要拓展程序,必须对工厂类进行修改,这违背了闭包原则,所以,从设计角度考虑,有一定的问题,如何解决?就用到抽象工厂模式,创建多个工厂类,这样一旦需要增加新的功能,直接增加新的工厂类就可以了,不需要修改之前的代码。

2:抽象工厂模式图:


3:目的:

提供一个创建一系列相关或者相互依赖对象的接口,并且避免了工厂方法中创建不同的产品时不用去修改工厂方法,只需去实现抽象工厂类然后去实现自己的工厂方法。

4:代码:

public interface AbatractProduct {  

    public void Product();  

}  

public class ProductFirst  implements AbatractProduct  {  

    @Override  

    public void Product() {  

        System.out.println("this is ProductFirst!");  

    }  

}  

public class ProductSecond implements AbatractProduct {  

    @Override  

    public void Product() {  

        System.out.println("this is AbatractProduct !");  

    }  

}

//工厂类的接口

public interface AbatractFactory {  

    public void produce();  

}  


public class SendMailFactory implements AbatractFactory {  

    @Override  

    public Sender produce(){  

        return new ProductFirst ();      

}  

}  

public class SendSmsFactory implements Provider{

    

    @Override  

    public Sender produce() {  

        return new ProductSecond();  

    }  





评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值