设计模式之工厂模式-java案例

#粤嵌星计划,粤嵌我来了#

#每天知多D#

核心思想:想用产品时,我不需要知道这个产品是怎么生成出来,我只想使用这个产品。

使用者只使用,创建由工厂类完成。

比如有一个父类叫手机类,它有三个子类分别为:华为手机类,小米手机类,oppo手机类。

使用者只需要告诉工厂要什么对象,工厂就创建什么对象返回给使用者。

之所以叫工厂模式,正是因为它像极了现实生活,普通人想拥有一部手机,但他不可能从零把手机生产出来,而是跟手机工厂说:“我想要一台华为手机,你造好了给我吧。”

手机工厂的职责就是负责生产手机,它是专业的。

interface Phone {
	public void call();
}

class Huawei implements Phone {
	@Override
	public void call() {
		System.out.println("华为手机");
	}
}

class XiaoMi implements Phone {
	@Override
	public void call() {
		System.out.println("小米手机");
	}
}

class Oppo implements Phone {
	@Override
	public void call() {
		System.out.println("OPPO手机");
	}
}

class PhoneFactory {
	public static Phone getPhone(String type) {
		if (type == null) {
			return null;
		}
		if ("huawei".equalsIgnoreCase(type)) {
			return new Huawei();
		} else if ("xiaomi".equalsIgnoreCase(type)) {
			return new XiaoMi();
		} else if ("oppo".equalsIgnoreCase(type)) {
			return new Oppo();
		}
		return null;
	}
}

public class Test2 {
	public static void main(String[] args) {
		Phone p = PhoneFactory.getPhone("Huawei");
		if (p != null) {
			p.call();
		}
	}
}

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值