创建型--简单工厂

简单工厂模式是一种编程习惯,用于解耦客户类与具体子类的实现。它提供一个通用接口来创建对象,根据传入参数决定实例化哪个子类。文章详细介绍了简单工厂的意图、结构图、具体代码实现、适用场景、本质、解决的问题,以及与工厂方法、抽象工厂的区别。通过案例展示了如何使用工厂模式创建手机对象,简化了客户类的实例化操作。
摘要由CSDN通过智能技术生成

意图

在创建一个对象时不向客户暴露内部细节,并提供一个创建对象的通用接口。

结构图

简单工厂
简单工厂不是一种设计模式,而是更像是一种编程习惯。它把实例化的操作单独放到一个类中,这个类就成为简单工厂类,让简单工厂类来决定应该用哪个具体子类来实例化。著作权归https://pdai.tech所有。这样做能把客户类和具体子类的实现解耦,客户类不再需要知道有哪些子类以及应当实例化哪个子类。因为客户类往往有多个,如果不使用简单工厂,所有的客户类都要知道所有子类的细节。而且一旦子类发生改变,例如增加子类,那么所有的客户类都要进行修改。

具体案例代码实现

我们就还以生产手机来举例说明,假如说我们有华为手机、小米手机、OPPO手机,如果我们要创建一个具体的手机对象,以往常规方法我们会分别创建华为手机类、小米手机类和OPPO手机类,需要哪种手机我们就去new,但是这样有个缺点,我们每次新增加一个新的品牌手机就需要去创建一个新的类,而且我们需要去记住所有的手机类才能去实例化我们需要的类,这样显然不方便。
使用工厂模式,我们就可以创建一个生产手机的工厂,根据用户传的参数去创建具体的手机。

/**
* 第一步:创建通用的手机接口,然后创建具体品牌手机的实现类。
* 第二步:创建生产手机的工厂。
* 第三步:测试
*/
//第一步::创建通用的手机接口,然后创建具体品牌手机的实现类。
public interface IPhone {
   
    /**
     * 名字
     */
    void name();
}
public class HuaweiPhone implements IPhone{
   
    /**
     * 名字
     */
    @Override
    public void name() {
   
        System.out.
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

w͏l͏j͏

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值