欢迎来到尧图网

客户服务 关于我们

您的位置:首页 > 新闻 > 会展 > 设计模式-创建型模式-简单工厂模式详解

设计模式-创建型模式-简单工厂模式详解

2024/12/23 18:20:14 来源:https://blog.csdn.net/qq_39505245/article/details/144383747  浏览:    关键词:设计模式-创建型模式-简单工厂模式详解

简单工厂模式

简介

单工厂模式 : Simple Factory Pattern
是一种创建型设计模式
通过一个工厂类,封装了对象的创建逻辑。
客户端使用时不需要通过 new 的方式进行对象的创建,而是直接调用工厂类中的方法获取对象

应用场景

场景介绍

1、有一个 手机的抽象类,声明了 手机的基本属性 和 功能方法;
2、不同品牌的手机,继承了 该抽象类;
3、有一个手机工厂,可以根据不同的参数,创建对应品牌的手机,并返回。

类图

在这里插入图片描述

案例代码

案例代码,就是按照 UML 类图进行实现的代码。

抽象类Phone

public abstract class Phone {protected String brandName; // 品牌名protected abstract void call(); // 抽象方法public String getBrandName() {return brandName;}public void setBrandName(String brandName) {this.brandName = brandName;}
}

实现类PhoneXiaoMi

public class PhoneXiaoMi extends Phone{@Overrideprotected void call() {System.out.println(brandName + " : 正在打电话。。。");}
}

实现类PhoneHuaWei

public class PhoneHuaWei extends Phone{@Overrideprotected void call() {System.out.println(brandName + " 华为手机正在打电话......");}
}

工厂类 PhoneFactory

public class PhoneFactory {public static Phone createPhone(String brand) {Phone phone = null;if ("XiaoMi".equals(brand)){phone = new PhoneXiaoMi();phone.setBrandName("小米14");}else if ("HuaWei".equals(brand)){phone = new PhoneHuaWei();phone.setBrandName("华为mate50");}return phone;}
}

测试类

通过工厂类中的方法,获取不同的对象。

public class FactoryTest {public static void main(String[] args) {// 通过手机工厂获取一个 华为的手机Phone phone = PhoneFactory.createPhone("HuaWei");phone.call();System.out.println(" =========== ");// 通过手机工厂获取一个 小米的手机Phone xiaoMi = PhoneFactory.createPhone("XiaoMi");xiaoMi.call();}
}
运行结果如下 :华为mate50 华为手机正在打电话......=========== 
小米14 : 正在打电话。。。

版权声明:

本网仅为发布的内容提供存储空间,不对发表、转载的内容提供任何形式的保证。凡本网注明“来源:XXX网络”的作品,均转载自其它媒体,著作权归作者所有,商业转载请联系作者获得授权,非商业转载请注明出处。

我们尊重并感谢每一位作者,均已注明文章来源和作者。如因作品内容、版权或其它问题,请及时与我们联系,联系邮箱:809451989@qq.com,投稿邮箱:809451989@qq.com