设计模式 [ 工厂模式 ]

工厂模式 

SUN_DEMON  (sudemon@163.com), 软件工程师, www.egemmer.cn, www.gemsuit.cn

2007 年 11 月 14 日
    工厂模式是非常基本的设计模式. 在真实的系统中, 产品可以形成复杂的等级结构, 多个不同名称产品可以是
共同类型的, 本文使用简单的编程实例来说明工厂模式做为生产者, 生产相同类型不同名称的产品.
本文的实例使用 Java 语言编写. 
 
 

工厂模式的几种形态

  • 简单工厂(Simple Factory)模式
  • 工厂方法(Factory Method)模式
  • 抽象工厂(Abstract Factory)模式

 


 

简单工厂模式

    比如说有一个公司, 专门向市场生产服装.  服装公司有两种服装:

  • 衣服
  • 裤子

服装与其他的商品有很大的不同, 服装是可以穿戴的. 那么可以建立一个各种服装都适用的接口, 以便与其他商品
区分开.

清单1 表示服装的接口.
public   interface  Costume  {
    
public void devise(); // 设计
    public void produce(); // 生产
    public void pack(); // 包装
}

衣服是服装的一种, 所以他实现了服装的所有方法.

清单2 表示衣服的类
public   class  Garment  implements  Costume  {

    
public void design() {
        System.out.println(
"设计衣服");
    }

    
    
public void produce() {
        System.out.println(
"生产衣服");
    }

    
    
public void pack() {
        System.out.println(
"包装衣服");
    }

}

裤子也是服装的一种, 所以也实现了服装的所有方法.

清单2 表示裤子的类
public   class  Breeches  implements  Costume  {

    
public void design() {
        System.out.println(
"设计裤子");
    }

    
    
public void produce() {
        System.out.println(
"生产裤子");
    }

    
    
public void pack() {
        System.out.println(
"包装裤子");
    }

}

公司的工作人员也是系统的一部分. 工作人员可以根据客户的需求, 创建不同的服装对象.

清单3 表示工作人员的类
public   class  Employee  {
    
public static Costume get(String costumeName) 
        
throws Exception{

        
if( costumeName.equalsIgnoreCase("garment") )
            
return new Garment();

        
if( costumeName.equalsIgnoreCase("breeches") )
            
return new Breeches();

        
throw new Exception("产品名称错误, 必须是: garment, breeches");
    }

}

 


 

方法工厂模式

未完, 正在写做.

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值