黑马程序员技术交流社区

标题: 有谁知道工厂模式啊 [打印本页]

作者: 朱皓    时间: 2012-2-25 09:55
标题: 有谁知道工厂模式啊
有谁知道工厂模式啊
作者: 黄方    时间: 2012-2-25 21:15
工厂模式:客户类和工厂类分开。消费者任何时候需要某种产品,只需向工厂请求即可。消费者无须修改就可以接纳新产品。缺点是当产品修改时,工厂类也要做相应的修改。如:如何创建及如何向客户端提供。

作者: 杨盼    时间: 2012-2-25 21:57
程序在接口和子类之间加入一个过渡端,通过此过渡端取得接口的实例化对象,这个过渡端就是工厂类,这种思想就是工厂模式,下面一个简单例子可以看看
interface Fruit{        // 定义一个水果接口
        public void eat() ;        // 吃水果
}
class Apple implements Fruit{
        public void eat(){
                System.out.println("** 吃苹果。") ;
        }
};
class Orange implements Fruit{
        public void eat(){
                System.out.println("** 吃橘子。") ;
        }
};
class Factory{        // 定义工厂类
        public static Fruit getInstance(String className){
                Fruit f = null ;
                if("apple".equals(className)){        // 判断是否要的是苹果的子类
                        f = new Apple() ;
                }
                if("orange".equals(className)){        // 判断是否要的是橘子的子类
                        f = new Orange() ;
                }
                return f ;
        }
};
public class InterfaceCaseDemo05{
        public static void main(String args[]){
                Fruit f = Factory.getInstance(args[0]) ;        // 实例化接口
                if(f!=null){        // 判断是否取得实例
                        f.eat() ;
                }
        }
};




欢迎光临 黑马程序员技术交流社区 (http://bbs.itheima.com/) 黑马程序员IT技术论坛 X3.2