二、工厂模式

本文详细介绍了三种工厂模式:简单工厂模式、工厂模式和抽象工厂模式。简单工厂模式通过静态工厂类创建对象;工厂模式为每种产品提供单独的工厂类;抽象工厂模式用于创建一系列相关或相互依赖的对象。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

工厂模式说白了就是用来创建对象的.只不过不同的工厂模式创建的对象的方法和数量不太一样

三种分类

简单工厂模式

简单工厂模式也叫静态工厂模式.其实本质就是实现一些接口.然后用工厂类来创建对象

public interface IProduct{
}
public class ProductA implements IProduct{
}
public class ProductB implements IProduct{
}
public class ProductFactory{
    public static IProduct getProduct(ProductType type){
        if(type==ProductType.ProductType_A){
            return new ProductA();
        }else if(type==ProductType.ProductType_B){
            return new ProductB();
        }
    }
    enum ProductType
    {
        ProductType_A,
        ProductType_B
    }
}

工厂模式

一个工厂生成一种对象

public interface IProduct{}
public class ProductA implements IProduct{
}
public class ProductB implements IProduct{
}
public interface IProductFactory{
    IProduct produce();
}
public class ProductAFactory{
    @Override
    IProduct produce(){
        return new ProductA();
    };
}
public class ProductBFactory{
        @Override
    IProduct produce(){
        return new ProductB();
    };
}

抽象工厂模式

主要用于生成一类对象.例子中用来生成mac或者window的border和button

public class AbstractFactory {
     public IButton CreateButton();
     public function CreateBorder();
}

public class MacFactory extends AbstractFactory{
    public IButton createMacButton(){
        return new MacButton();
    }
    public IBorder createWinBorder(){
        return new MacBorder();
    }
}
public class WinFactory extends AbstractFactory{
    public IButton createWinButton(){
        return new WindowButton();
    }
    public IBorder createWinBorder(){
        return new WindowBorder();
    }
}
public interface IButton{}
public interface IBorder{}
public class WindowButton implements IButton{}
public class MacButton implements IButton{}
public class MacBorder implements IBorder{}
public class WindowBorder implements IBorder{}
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值