工厂模式主要是为创建对象提供过渡接口,以便将创建对象的具体过程屏蔽隔离起来,达到提高灵活性的目的。
工厂模式可以分为三类:
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();
}
}
运行结果:
生产一台小米手机
已生产配套手机膜
生产一台华为手机
已生产配套手机膜