设计模式普及之抽象工厂模式

本文是读《Android源码设计模式解析与实战》后笔记
抽象工厂的定义

为创建一组相关或者是相互依赖的对象提供一个借口,而不需要指定它们的具体类。

抽象工厂的使用场景

一个对象族有相同的约束时可以使用抽象工厂模式。

下面简单实现,上代码:

public abstract class MacBookComputer {
    public abstract ICpu selectCpu();
    public abstract IMemory selectMemory();
    public abstract IHardDisk selectHardDisk();
}
//Cpu
public interface ICpu {
    void model();
}
public class I5Cpu implements ICpu{
    @Override
    public void model() {
        System.out.println("i5处理器");
    }
}
//内存
public interface IMemory {
    void size();
}
public class Memory_8G implements IMemory{
    @Override
    public void size() {
        System.out.println("8G内存");
    }
}
//存储
public interface IHardDisk {
    void size();
}
public class Disk_128G implements IHardDisk{
    @Override
    public void size() {
        System.out.println("128G存储");
    }
}
//入门款
public class NormalMacBookFactory extends MacBookComputer{
    @Override
    public ICpu selectCpu() {
        return new I5Cpu();
    }
    @Override
    public IMemory selectMemory() {
        return new Memory_8G();
    }
    @Override
    public IHardDisk selectHardDisk() {
        return new Disk_128G();
    }
}

public class Person {
    public static void main(String[] args) {
        System.out.println("我选择MacBook的入门版");
        NormalMacBookFactory factory = new NormalMacBookFactory();
        factory.selectCpu().model();
        factory.selectMemory().size();
        factory.selectHardDisk().size();
    }
}

优点

分离接口与实现,切换产品类灵活

缺点

文件数量太多,不容易扩展

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值