设计模式之工厂模式笔记

本文详细介绍了工厂模式的概念,包括其角色(工厂接口、具体工厂、产品接口和具体产品),并通过Java示例展示了如何使用工厂模式来创建和管理对象,以及其在解耦和代码维护中的优势。还提及了Spring框架中的BeanFactory。
摘要由CSDN通过智能技术生成

工厂模式:通过将对象的创建过程封装在一个工厂类中,以解耦对象的使用者和具体的对象创建过程,提供了一种灵活、可扩展和易维护地方式来实例化对象。是面向对象设计中常用且强大的设计模式之一。通过使用工厂模式,我们可以隐藏对象的创建细节,提供一个统一的入口来获取需要的对象。这样,在需要改变具体对象实现时,只需修改对应的具体工厂即可,而无需修改使用该对象的代码。

工厂模式主要角色:

1. 工厂接口:定义了创建对象的方法,可以是抽象类或接口。

2. 具体工厂:实现了工厂接口,并负责实际创建具体的对象。

3. 产品接口:定义了产品对象的方法。

4. 具体产品:实现了产品接口,并定义了具体的业务逻辑。

拓展:BeanFactory spring 最顶级接口 beanfactory详解-CSDN博客

简单示例
 

public interface Phone {
    void showBrand();
    void call();
}
public class ApplePhone implements Phone{
    @Override
    public void showBrand() {
        System.out.println("brand is apple");
    }

    @Override
    public void call() {
        System.out.println("call with apple phone ");
    }
}
public class HuaWeiPhone implements Phone{
    @Override
    public void showBrand() {

        System.out.println("brand is huawei");
    }

    @Override
    public void call() {
        System.out.println("make call with huawei");
    }
}
public class PhoneFactory {
    public static Phone getPhone(Class<? extends Phone> phoneType) {

        try {
            return phoneType.getDeclaredConstructor().newInstance();
        } catch (Exception e) {
            e.printStackTrace();
            return null;
        }
    }
}
public class Demo {
    public static void main(String[] args) {
        Phone phone = PhoneFactory.getPhone(HuaWeiPhone.class);
        phone.showBrand();
        Phone phone1 = PhoneFactory.getPhone(ApplePhone.class);
        phone1.showBrand();


    }
}

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值