您的位置:首页 > 其它

简单工厂模式(Simple Factory)

2017-01-20 15:08 369 查看

简单工厂模式

简单工厂模式属于创建型模式,又叫做静态工厂方法(Static Factory Method)模式,不属于GoF 23种设计模式之一。

简单工厂模式角色: 抽象产品类、具体产品类、工厂类

在简单工厂模式中将对象的创建与使用职责分离了开来,客户端不再负责对象的创建,而是将这个责任丢给了具体的工厂类,客户端只负责对象的调用,从而明确各个类的职责。符合单一职责原则。

uml类图



简单工厂模式代码实现

抽象产品类

package CreatePatterns.SimpleFactoryPattern.Animal;

public abstract class Animal {
abstract void action();//动作
abstract void eat();//动物进食
}


具体产品类

package CreatePatterns.SimpleFactoryPattern.Animal;
/*
* 老虎
*/
public class Tiger extends Animal{
public void action(){
System.out.println("老虎running");
}

public void eat() {
System.out.println("老虎吃肉");
}

}
/*
* 鹦鹉
*/
public class Parrot extends Animal{
public void action(){
System.out.println("鹦鹉Flying");
}

public void eat(){
System.out.println("鹦鹉吃虫子");
}
}
/*
* 海豚
*/
public class Dolphin extends Animal{
public void action(){
System.out.println("海豚swing");
}

public void eat(){
System.out.println("海豚吃鱼");
}
}


工厂类

package CreatePatterns.SimpleFactoryPattern.Animal;

public class SimpleFactory {
//根据参数创建对象
public static Animal createProduct(String productName){
if("Tiger".equals(productName)){
return new Tiger();
}else if("Dolphin".equals(productName)){
return new Dolphin();
}else if("Parrot".equals(productName)){
return new Parrot();
}
return null;
}
}


客户端

package CreatePatterns.SimpleFactoryPattern.Animal;
/*
*客户端
*/
public class Client {
public static void main(String[] args){
Animal tiger = SimpleFactory.createProduct("Tiger");
tiger.action();
Animal dolphin = SimpleFactory.createProduct("Dolphin");
dolphin.action();
Animal parrot = SimpleFactory.createProduct("Parrot");
parrot.action();
}
}


运行结果

内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息