简单工厂模式

简单工厂模式

简单工厂模式是类的创建模式,又叫静态工厂方法模式,它由一个工厂对象决定创建出哪一种产品类的实例。工厂模式专门负责将大量有共同接口的类实例化,可以动态决定将哪一个类实例化,不必事先知道每次要实例化的是哪一个类

 

简单工厂模式的核心是工厂类,它含有必要的判断逻辑,可以决定在什么时候创建哪一个产品类的实例。简单工厂模式一般只有一个工厂方法,如下图的 Factory 类的 factory() 方法。

 

例:

public   class  Factory{ 

              
public  Factory(){} 

              
public   static  art factory(String art){ 

                     
if (art.equals(“圆形”)) 

                            
return   new  Round(); 

                     
else   if (art.equals(“方形”)) 

                            
return   new  Square(); 

                     
else   if (art.equals(“三角形”)) 

                            
return   new  Triangle(); 
                     else 
                          throw new  Exception("不能创建这样的对象");





  

public   interface  Art{ 

       
public   void  draw(); 

       
public   void  erase(); 



  

public   class  Round  implements  Art{ 

       
public   void  draw(){ 

              System.out.println(“画一个圆形”); 



public   void  erase(){ 

       System.out.println(“删除一个圆形”); 





  

public   class  Square  implements  Art{ 

       
public   void  draw(){ 

              System.out.println(“画一个方形”); 



public   void  erase(){ 

       System.out.println(“删除一个方形”); 





  

public   class  Triangle  implements  Art{ 

       
public   void  draw(){ 

              System.out.println(“画一个三角形”); 



public   void  erase(){ 

       System.out.println(“删除一个三角形”); 





  

public   class  Main{ 

       
public   static   void  main(String[] args){ 

              Art art 
=  Factory.factory(“圆形”); 

              art.draw(); 





三种角色:
         工厂类角色:是简单工厂方法模式的核心,含有与应用紧密联系的逻辑。
         抽象产品
         具体产品

posted on 2009-07-02 22:31 luofeng225 阅读(201) 评论(0)  编辑  收藏 所属分类: 设计模式


只有注册用户登录后才能发表评论。


网站导航:
 
<2009年7月>
2829301234
567891011
12131415161718
19202122232425
2627282930311
2345678

导航

统计

公告

我曾经听到这么一个故事: 一个年轻的程序员问一个老程序员(一个比较牛逼的公司的CTO) 年轻程序员: 你为什么这么牛X., 就好像没有你不会的。老程序员: 积累的。年轻程序员: 怎么才能积累到您的程度呢。我每天都在积累。但是似乎都没有感觉到进步。老程序员: 我从20岁开始做到了一件事情,直到今天,而且尽可能地保证不间断。年轻程序员: 到底是什么? 老程序员: 我每天保证自己有2个小时在学习新的东西。

常用链接

留言簿(3)

随笔分类

随笔档案

文章分类

相册

收藏夹

Java Website

java技术博客

搜索

最新评论

阅读排行榜

评论排行榜