`
shuofenglxy
  • 浏览: 189629 次
  • 性别: Icon_minigender_1
  • 来自: 北京
社区版块
存档分类
最新评论

菜鸟硕枫设计模式系列之3 工厂方法模式

阅读更多
工厂方法模式也是一种创建对象的设计模式,属于创建型设计模式。工厂方法模式定义了对象工厂接口,抽象出了获取对象实例方法,而将具体的创建对象工作放到了具体的类创建工厂进行。

工厂方法模式类图:


         


具体实现代码示例:
工厂接口:
package factoryPattern;

public interface Factory {

	Fruit factorygetInstance();
}

具体工厂1:
package factoryPattern;

public class AppleFactory implements Factory{

	public Fruit factorygetInstance(){
		// TODO Auto-generated method stub
		return new Apple();
	}

}

具体工厂2:
package factoryPattern;

public class PearFactory implements Factory{

	public Fruit factorygetInstance(){
		// TODO Auto-generated method stub
		return new Pear();
	}
}


对象接口:
package factoryPattern;

public interface Fruit {

	String getFruitName();
}

具体对象1:
package factoryPattern;

public class Apple implements Fruit{

	@Override
	public String getFruitName(){
		// TODO Auto-generated method stub
		return "This is apple";
	}

}


具体对象2:
package factoryPattern;

public class Pear implements Fruit {

	@Override
	public String getFruitName() {
		// TODO Auto-generated method stub
		return "This is pear";
	}

}


测试类:
package factoryPattern;

public class FactoryMethodTest {

	public static void main(String[] args){
		Factory fac = new AppleFactory();
		System.out.println(fac.factorygetInstance().getFruitName());
		fac = new PearFactory();
		System.out.println(fac.factorygetInstance().getFruitName());
	}
	
}


说明:
与简单工厂模式相比,工厂方法模式将对象的创建与抽象工厂分离,当要新增类对象的创建时,只需要实现一个具体工厂和一个具体的类(新增类对象的类)即可,满足了开闭原则。缺点在于,多出了很多具体的创建对象工厂,存在一种类对象,则要有相应的对象工厂对应。
  • 大小: 23 KB
分享到:
评论

相关推荐

Global site tag (gtag.js) - Google Analytics