设计模式 [ 工厂模式 ]

来源:互联网 发布:英白罗 知乎 编辑:程序博客网 时间:2024/04/29 18:26

工厂模式 

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");
    }

}

 


 

方法工厂模式

未完, 正在写做.

原创粉丝点击