java 设计模式之工厂方法模式

 工厂模式主要是为创建对象提供过渡接口,以便将创建对象的具体过程屏蔽隔离起来,达到提高灵活性的目的。 
工厂模式可以分为三类: 

1)简单工厂模式(Simple Factory) ,简单的创建一个对象工厂,然后创建对象,把创建对象隐藏。
2)工厂方法模式(Factory Method) ,一个工厂创建一个产品,可以有多个工厂
3)抽象工厂模式(Abstract Factory) ,一个工厂创建多个产品,可以有多个工厂

工厂模式的组成模式:

抽象产品 类,具体产品类,抽象工厂类,具体工厂类。

package com.huawei.factory;

//定义手机抽象类
 public interface Phone {
	
}
//定义手机膜抽象类
interface PhoneM
{
	
}
class PhoneMImple implements PhoneM
{
	PhoneMImple(){
		System.out.println("已生产配套手机膜");
	}
}
//小米手机
class MiPhone implements Phone{
	MiPhone()
	{
		System.out.println("生产一台小米手机");
	}
}
class HWPhone implements Phone
{
	HWPhone()
	{
		System.out.println("生产一台华为手机");
	}
}
class IPhone implements Phone{
	IPhone()
	{
		System.out.println("生产一台苹果手机");
	}
}
interface PhoneFactory{
	Phone createPhone();//定义生产手机
	PhoneM createPhoneM();//定义生产手机膜
}
/**
 * 生产小米手机及其手机膜
 * @author Administrator
 *
 */
class IMPhoneFactoryImpl implements PhoneFactory{

	@Override
	public Phone createPhone() {
		
		return new MiPhone();
	}

	@Override
	public PhoneM createPhoneM() {
		// TODO Auto-generated method stub
		return new PhoneMImple();
	}
	
}
/**
 * 生产华为手机及其手机膜
 * @author Administrator
 *
 */
class HWPhoneFactoryImpl implements PhoneFactory{

	@Override
	public Phone createPhone() {
		
		return new HWPhone();
	}

	@Override
	public PhoneM createPhoneM() {
		// TODO Auto-generated method stub
		return new PhoneMImple();
	}
	
}

package com.huawei.factory;

public class Test1 {
	public static void main(String[] args) {
		//生产小米手机
		PhoneFactory mip = new IMPhoneFactoryImpl();
		mip.createPhone();
		mip.createPhoneM();
	
		//生产华为手机
		PhoneFactory hwp = new HWPhoneFactoryImpl();
		hwp.createPhone();
		hwp.createPhoneM();
	}
}

运行结果:

生产一台小米手机
已生产配套手机膜
生产一台华为手机
已生产配套手机膜


  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值