您的位置:首页 > 其它

【设计模式】之工厂模式

2015-12-29 11:56 120 查看
目录

之我所见

结构框图

代码实例

总结

回到顶部

之我所见

  工厂模式:客户类和工厂类分开。消费者任何时候需要某种产品,只需向工厂请求即可。消费者无须修改就可以接纳新产品。

  缺点:当产品修改时,工厂类也要做相应的修改。如:如何创建及如何向客户端提供。

回到顶部

结构框图



回到顶部

代码实例

interface Mcdonald{
void cooking();
}

class Hamburger implements Mcdonald{
@Override
public void cooking() {
System.out.println("@-------MM吃汉堡-------@");
}
}

class Cola implements Mcdonald{
@Override
public void cooking() {
System.out.println("@-------MM喝可乐-------@");
}
}

class Frenchfries implements Mcdonald{
@Override
public void cooking() {
System.out.println("@-------MM吃薯条-------@");
}
}

public class Factory {
public Mcdonald getFood(String type){
if(type==null){
return null;
}

if(type.equals("Hamburger")){
return new Hamburger();
}
else if(type.equals("Cola")){
return new Cola();
}
else if(type.equals("Frenchfries")){
return new Frenchfries();
}
return null;
}

public static void main(String[] args) {
Factory factory = new Factory();

System.out.println("@-------MM想吃汉堡-------@");
Mcdonald m1 = factory.getFood("Hamburger");
m1.cooking();

System.out.println("@-------MM想喝可乐-------@");
Mcdonald m2 =factory.getFood("Cola");
m2.cooking();

System.out.println("@-------MM想吃薯条-------@");
Mcdonald m3 = factory.getFood("Frenchfries");
m3.cooking();

}
}


  结果

@-------MM想吃汉堡-------@
@-------MM吃汉堡-------@
@-------MM想喝可乐-------@
@-------MM喝可乐-------@
@-------MM想吃薯条-------@
@-------MM吃薯条-------@


回到顶部

总结

追MM少不了请吃饭了,麦当劳的鸡翅和肯德基的鸡翅都是MM爱吃的东西,虽然口味有所不同,但不管你带MM去麦当劳或肯德基,只管向服务员说“来四个鸡翅”就行了。麦当劳和肯德基就是生产鸡翅的Factory。
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: