简单工厂模式

简单工厂模式是一种创建型设计模式,它提供了一个创建对象的工厂类,根据传入的参数创建不同类型的实例。客户端通过调用工厂类的静态方法,无需了解具体产品类的细节,即可获取所需的产品对象。文章通过手机生产为例,展示了如何创建抽象产品(手机类)和具体产品(如Iphone、Vivo类),以及工厂类(PhoneFactory)如何根据参数生成相应的产品对象。

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

简单工厂模式事宜图

简单工厂模式相关术语及基本实现过程

术语1-客户端:手机用户

术语2-工厂类、工厂方法和参数:一个工厂类用于创建各种产品,在工厂类中提供一个创建产品的工厂方法,该方法可以根据所传入参数的不同创建不同的具体产品对象

术语3-产品类:分为具体产品和抽象产品,具体产品如iphone、vivo手机,抽象产品则是具体产品的统称——手机 实现过程:简单工厂模式的使用者(客户端),只需告诉唯一的手机工厂(工厂类)的手机生产线(工厂方法)相应的手机型号(参数)便可得到一个手机(产品)对象 。

简单工厂模式的定义

简单工厂模式 (Simple Factory Pattern):定义一个工厂类,它可以根据参数的不同返回不同类的实例,被创建的实例通常都具有共同的父类。

简单工厂模式的关键点

在简单工厂模式中用于创建实例的方法通常是静态(static)方法,因此又被称为静态工厂方法(Static Factory Method)模式 要点:如果需要什么,只需要传入一个正确的参数,就可以获取所需要的对象,而无须知道其创建细节。

简单工厂模式的结构

简单工厂模式的组成部分: Factory(工厂角色) Product(抽象产品角色) ConcreteProduct(具体产品角色)

注:客户端(用户)角色是使用模式的角色,属于模式之外的,不是模式的组成部分

用户到商店买手机例子的类图

抽象产品类——手机类的代码:

 

public abstract class Phone {
	String type;//手机类型
	public abstract void showType();//显示手机类型的抽象方法
}

具体产品类——iphone与vivo手机类的代码:

//具体产品类(iphone手机类)
public class Iphone extends Phone{
	public void showType() {
		type="iphone";
		System.out.println(type);
	}}
//具体产品类(vivo手机类)
public class Vivo extends Phone{
	public void showType() {
		type="vivo";
		System.out.println(type);
	}}

工厂类——手机工厂的代码:

public class Test {
	public static void main(String[] args) {
		Phone phone;
		phone=PhoneFactory.getPhone("vivo");
		phone.showType();
	}
}

客户端(本模式使用者)的代码:

//唯一的手机工厂
public class PhoneFactory {
	public static Phone getPhone(String type) {
		Phone phone=null;
		//根据手机类型type的值,进行对象的创建
		if ("iphone".equals(type)) {
			phone=new Iphone();
		}
		if ("vivo".equals(type)) {
			phone=new Vivo();
		}
		return phone;
	}
}
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值