您的位置:首页 > 其它

设计模式之:简单工厂模式

2016-05-06 19:28 218 查看
简单工厂模式
简单工厂模式概述

又叫静态工厂方法模式,它定义一个具体的工厂类负责创建一些类的实例

优点

客户端不需要在负责对象的创建,从而明确了各个类的职责

缺点

这个静态工厂类负责所有对象的创建,如果有新的对象增加,或者某些对象的创建方式不同,就需要不断的修改工厂类,不利于后期的维护。

例子1:简单工厂模式代码

public
abstractclass
Animal {
public
abstract void
eat();
}

public
class
AnimalFactory {
private AnimalFactory(){

}
public
static
AnimalcreateAnimal(String type){
if("dog".equals(type)){
return
new
Dog();
}else
if
("cat".equals(type)){
return
new
Cat();
}else{
return
null
;
}
}
}

public
class
Dog extendsAnimal {

@Override
public
void
eat() {
// TODO Auto-generated method stub
System.out.println("狗吃肉");
}

}

public
class
Cat extendsAnimal {

@Override
public
void
eat() {
// TODO Auto-generated method stub
System.out.println("猫吃鱼");
}

}

public
class
AnimalDemo {

public
static void
main(String[] args) {
// TODO Auto-generated method stub

//具体类调用
Dogd = newDog();
d.eat();
Catc = newCat();
c.eat();
System.out.println("-------------");

Animala = AnimalFactory.createAnimal("dog");
a.eat();
a= AnimalFactory.createAnimal("cat");
a.eat();

//NullPointerException
a= AnimalFactory.createAnimal("pig");
if(a !=
null){
a.eat();
}else{
System.out.println("对不起,暂时不提供这种动物");
}
}

}

运行结果:

狗吃肉
猫吃鱼
-------------
狗吃肉
猫吃鱼
对不起,暂时不提供这种动物
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: