java设计模式之工厂模式

工厂模式

工厂模式概念

工厂模式(Factory Pattern)是最常见的设计模式,该模式设属于创建型模式,它提供了一种简单、快速、高效而安全地创建对象的方式。工厂模式在接口中定义了创建对象的方法,而将具体的创建对象的过程在子类中实现,用户只需通过接口创建需要的对象即可,不用关注对象的具体创建过程。同时,不同的子类可根据需求灵活实现创建对象的不同方法。
通俗地讲,工厂模式的本质就是用工厂方法代替new操作创建一种实例化对象的方式,以提供一种方便地创建有同种类型接口的产品的复杂对象。

Class class=new Class();

如上代码通过new关键字实例化类Class的一个实例Class,但如果Class类在实例时需要一些初始化参数,而这些参数需要其他类的信息,则直接通过new关键字实例化时会增加代码的耦合度,不利于维护,因此需要通过工厂模式将创建实例和使用实例分开。将创建实例化的过程封装到工厂方法中,我们在使用时直接通过调用工厂方法来实现,不需要关心具体的实现过程。

实现

以创建手机为例,假设手机品牌有华为和苹果两种类型,我们要实现的是根据不同的传入参数实例化不同的手机。

UML图 :

在这里插入图片描述

  1. 定义接口
public interfac Phpone{
String brand();
}
  1. 定义实现类
public IPhone implements Phone{
	public String brand(){
		return "this is Apple phone";
	}
}
public HuaWeiPhone implements Phone{
	public String brand(){
		return "this is a HuaWei  Phone";
	}
}

  1. 定义工厂类
public class Factory{
	public Phone createPhone(String phoneName){
		if("HuaWei".equsal(phoneName)){
			return new HuaWeiPhone();		
		}else if("Apple".equuals(phoneName)){
			return new IPhone();
		}else {
			return null;
		}
	}
}
  1. 测试类
public class Test{
	public  static void main(String [] args){
		Factory factory=new Factory();
		Phone huawei=factory.createPhone("HuaWei");
		Phone iphone=factory.createPhone("Apple");
		System.out.println(huawei.brand());
		Syetem.out.println(iphone.brand());
	}

}
  1. 结果

在这里插入图片描述

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值