尊重原创 http://write.blog.csdn.net/postedit/26062579
本文代码:http://download.csdn.net/detail/yuanzeyao2008/7360653
工厂模式主要是用来生成具有相同接口的类
工厂模式主要包括:1、简单工厂
2、工厂方法
3、抽象工厂
我们首先来学习一下简单工厂的原理:
学习背景:
我需要这样一个智能程序,我对它讲话,它能够为我制造一台能够满足我需求的电器
如:我要看电视,它给我制造一台电视,我要洗衣服,它给我制造一台洗衣机...
首先我使用面向过程的方法来实现这个程序
public static void main(String[] args) throws IOException
{
//从控制台获取用户需求
BufferedReader br=new BufferedReader(new InputStreamReader(System.in));
String input=br.readLine();
//根据用户需求,制造相应的电器为用户服务
if(input.equals("洗衣服"))
{
Washer washer=new Washer();
washer.execute();
}else if(input.equals("看电视"))
{
Televisor tv=new Televisor();
tv.execute();
}else if(input.equals("冰冻食物"))
{
Refrigerator ref=new Refrigerator();
ref.execute();
}
}
上面这段程序基本功能是具备了的,但是有一种坏的味道(重构里面喜欢用的词),所有的逻辑判断都放在了客户端程序中,如果用户的需求变了,那么我们就需要更改客户端代码,添加逻辑判断,对于代码的扩展非常不方面,而且也不合符“开放-封闭”原则,像这种根据不同的需求要