报课、招生咨询电话:010-51268840/41

首页 > 计算机考试 > JAVA考试认证 >
→论坛登陆 用户名  密码  
AbstractFactory抽像工厂

作者: 发布时间:2008-07-18 10:12:01 来源:育路计算机考试频道
 模式定义
  Abstract Factory模式定义了如何实例化一组对象系列,这些对象可能相关可能互为利用。客户在创建的时候无须指定这些对象属于什么类型,它只需关注是谁生产的。具体生产出来的一系列对象的细节和类别则由某个工厂负责。
  使用范围
  系统需要独立于组成它的对象系列的创建、组织和表现的时候
  需要组合一系列的对象,这些对象作为整体作用于一个系统的时候
  使用方法
  考察抽象工厂的类图
  AbstractFactory类是一个系统的抽象,称之为工厂,该工厂可能多个包含细节的子类。每个工厂都必须生产同一个系列的产品组,这里为AbstractProductA和AbstractProductB。然而,每一个工厂的系列产品又有不同的实现方法或表现方法。因此ConcreteFactory1生产ProductA1和ProductA1,ConcreteFactory2生产ProductA2和ProductB2。
  举例说明
  假设我们要在一个应用程序中创建一个Button和一个Textbox。对于不同的系统可能创建不一样的这两个对象,Linux下的和Windows环境下的。
  public abstract class Button {
  protected abstract void createShape();
  }
  public abstract class Textbox {
  protected abstract void createText();
  }
  在Linux环境下创建Button和Textbox的实现细节
  public class LinuxButton extends Button{
  protected void createShape() {
  System.out.println("create Linux Button");
  }
  }
  public class LinuxTextbox extends Textbox{
  protected void createText() {
  System.out.println("create linux textbox");
  }
  }
  在Windows环境下创建Button和Textbox的实现细节
  public class WindowsButton extends Button{
  protected void createShape() {
  System.out.println("create windows button");
  }
  }
  public class WindowsTextbox extends Textbox{
  protected void createText() {
  System.out.println("create windows textbox");
  }
  } 这里是一个抽象工厂类,需要完成创建Button和Textbox的方法
  public abstract class Factory {
  Button button;
  Textbox textbox;
  public abstract void createButton();
  public abstract void createTextbox();
  }
  Linux下的工厂角色
  public class LinuxFactory extends Factory{
  public void createButton() {
  button = new LinuxButton();
  button.createShape();
  }
  public void createTextbox() {
  textbox = new LinuxTextbox();
  textbox.createText();
  }
  }
  Windows下的工厂角色
  public class WindowsFactory extends Factory{
  public void createButton() {
  button = new WindowsButton();
  button.createShape();
  }
  public void createTextbox() {
  textbox = new WindowsTextbox();
  textbox.createText();
  }
  }
  到此为止,一个抽象工厂模式创建完毕。类结构图如下:
  客户端的使用方法为:
  public class Client {
  public static void main(String args[]){
  Factory factory = new LinuxFactory();
  factory.createButton();
  factory.createTextbox();
  factory = new WindowsFactory();
  factory.createButton();
  factory.createTextbox();

【责编:冷客  纠错
    育路网
 
 
                                        
评论】【加入收藏夹】【 】【打印】【关闭
育路网2007年夏令营联展
 更多有关新闻:
 
·[考试动态2008年医师资格考试网上报名须知 ·[考试动态2008年医师资格考试3月10日开始网
·[考试动态卫生部医师资格考试委员会公告 ·[考试动态2008年医师考试于9月20至21进行
·[考试动态关于北京考区2008年度国家医师资 ·[考试动态崇文区卫生局关于北京考区2008年
·[考试动态丰台区卫生局关于北京考区2008年 ·[考试动态2008年上海市医师资格考试(考区
·[考试动态2008年医师资格考试(天津考区) ·[考试动态惠州市卫生局关于2008医师资格考
·[考试动态无锡市关于2008年医师资格考试网 ·[考试动态关于珠海市2008年医师资格考试的
·[考试动态韶关市关于2008年医师资格考试网 ·[考试动态深圳市关于2008年医师资格考试深
·[考试动态杭州市卫生局关于2008年医师资格 ·[考试动态丽水市关于2008年医师资格考试报
发表评论
用户名: 密码:
验证码: 匿名发表
课程搜索:
选择分类:
课程关键字:
课程 学校
 2008年首都高校秋季招生
北京理工大学2008年招生简章
北京文理研修学院2008年招生简章
北京建设大学2008年招生简章
北京中山学院2008年招生简章
北京城市学院2008年招生简章
培黎职业学院2008年招生简章
北京金融学院2008年招生简章
北京吉利大学2008年招生简章
北方工商管理学院2008年招生简章
 本周推荐课程
·初中起点雅思半年脱产 ·启德雅思6分冲刺课程
·新概念1+2册慢速精讲课 ·环球新托福100分强化
·北文王长喜四级强化班 ·英语四、六级培训课程
·海文考研数学课程 ·海文考研英语课程
·北大企业管理高级研修班 ·清华企业领导人研修班
·中美高中生交换项目 ·北工大中加学院2+2本科
·劳动和社会保障部物流师 ·物业管理师职业培训
·市场营销经理国际资格 ·现场管理实务培训
清华大学留学
中法管理硕士预科班
课程咨询热线:010-51268840 51268841
 最新新闻
·广东省疾控中心在全国率先实行公务员管理
·2009年公务员考试四大申论热点话题
·“言语理解与表达”备考三须知
·甘肃公务员教育领域新添本土教材两本
·公务员涨工资应经过纳税人同意
·没完成招商指标 无锡50万年薪公务员下岗
·江苏再招录1452名公务员 省公安厅提供所有岗位
·佛山公务员台湾游暂时不能受理
·东莞近一成公务员患"心病" 医生建议定期体检
·“万名干部上路”是对公务员富贵病的颠覆
 育路社区            进入>>
 
学员报名服务中心: 北京北三环西路32号恒润中心1806(交通位置图
咨询电话:北京- 010-51268840/41 传真:010-51418040 上海-021-64392659、64397431
育路网-中国新锐教育社区: 北京站 | 上海站 | 郑州站| 武汉站
本站法律顾问: 邱清荣律师
北京育路互联科技有限公司版权所有 | 京ICP备05012189号