全网整合营销服务商

电脑端+手机端+微信端=数据同步管理

免费咨询热线:400-708-3566

java设计模式之工厂模式实例详解

本文实例讲述了java设计模式之工厂模式。分享给大家供大家参考,具体如下:

工厂模式(factory)

涉及到4个角色:抽象工厂类角色,具体工厂类角色,抽象产品类角色和具体产品类角色。

抽象工厂类角色使用接口或者父类来描述工厂的行为,

具体工厂类角色负责创建某一类型的产品对象。

抽象产品类可以使用接口或者父类来描述产品对象的行为特征。

具体产品类就是某一具体的对象。

工厂模式不同于静态工厂模式的地方:

工厂模式在工厂类也实现了多态,而不仅仅是在产品对象上实现多态。
它可以应对不同类型的产品对应一种具体的工厂。

其设计模式如下:

抽象工厂类  IFactory

package org.test.design.f;
/**
 *
 * @author lushuaiyin
 *
 */
public interface IFactory {
  IProduct createProduct();
}

具体工厂类  CarFactory   ComputerFactory

package org.test.design.f;
public class CarFactory implements IFactory {
  public IProduct createProduct() {
    return new Car();
  }
}

package org.test.design.f;
public class ComputerFactory implements IFactory {
  public IProduct createProduct() {
    return new Computer();
  }
}

抽象产品类  IProduct

package org.test.design.f;
public interface IProduct {
  void work();
}

具体产品类  Car  Computer

package org.test.design.f;
public class Car implements IProduct{
  public void work() {
    System.out.println("I am car.");
  }
}

package org.test.design.f;
public class Computer implements IProduct{
  public void work() {
    System.out.println("I am Computer.");
  }
}

测试:

package org.test.design.f;
public class TestMain {
  /**
   * @param args
   */
  public static void main(String[] args) {
    IFactory carFactory=new CarFactory();
    IProduct car=(IProduct)carFactory.createProduct();
    car.work();
    IFactory pcFactory=new ComputerFactory();
    IProduct pc=(IProduct)pcFactory.createProduct();
    pc.work();
  }
}
/*打印
I am car.
I am Computer.
*/

更多java相关内容感兴趣的读者可查看本站专题:《Java数据结构与算法教程》、《Java操作DOM节点技巧总结》、《Java文件与目录操作技巧汇总》和《Java缓存操作技巧汇总》

希望本文所述对大家java程序设计有所帮助。


# java  # 设计模式  # 工厂模式  # 深入理解Java设计模式之抽象工厂模式  # java设计模式--三种工厂模式详解  # 一文看懂JAVA设计模式之工厂模式  # Java设计模式之工厂模式  # Java设计模式之工厂模式实现方法详解  # Java设计模式之抽象工厂模式实例详解  # Java设计模式之工厂模式案例详解  # 操作技巧  # 是在  # 多态  # 相关内容  # 感兴趣  # 而不  # 数据结构  # 给大家  # 它可以  # 可以使用  # 涉及到  # 所述  # 不同类型  # 程序设计  # 实现了  # 讲述了  # args  # nbsp  # static  # main 


相关文章: 详解免费开源的DotNet二维码操作组件ThoughtWorks.QRCode(.NET组件介绍之四)  javascript中的try catch异常捕获机制用法分析  如何通过PHP快速构建高效问答网站功能?  广东专业制作网站有哪些,广东省能源集团有限公司官网?  如何在万网开始建站?分步指南解析  免费制作海报的网站,哪位做平面的朋友告诉我用什么软件做海报比较好?ps还是cd还是ai这几个软件我都会些我是做网页的?  杭州银行网站设计制作流程,杭州银行怎么开通认证方式?  ui设计制作网站有哪些,手机UI设计网址吗?  股票网站制作软件,网上股票怎么开户?  网站建设制作需要多少钱费用,自己做一个网站要多少钱,模板一般多少钱?  C++用Dijkstra(迪杰斯特拉)算法求最短路径  大同网页,大同瑞慈医院官网?  linux top下的 minerd 木马清除方法  网站制作公司广州有几家,广州尚艺美发学校网站是多少?  洛阳网站制作公司有哪些,洛阳的招聘网站都有哪些?  整人网站在线制作软件,整蛊网站退不出去必须要打我是白痴才能出去?  小视频制作网站有哪些,有什么看国内小视频的网站,求推荐?  香港代理服务器配置指南:高匿IP选择、跨境加速与SEO优化技巧  C++时间戳转换成日期时间的步骤和示例代码  深圳网站制作设计招聘,关于服装设计的流行趋势,哪里的资料比较全面?  高性能网站服务器配置指南:安全稳定与高效建站核心方案  安徽网站建设与外贸建站服务专业定制方案  建站之星代理如何获取技术支持?  如何快速搭建FTP站点实现文件共享?  微信h5制作网站有哪些,免费微信H5页面制作工具?  网站制作多少钱一个,建一个论坛网站大约需要多少钱?  如何快速启动建站代理加盟业务?  广州顶尖建站服务:企业官网建设与SEO优化一体化方案  C#怎么创建控制台应用 C# Console App项目创建方法  香港服务器租用每月最低只需15元?  如何挑选高效建站主机与优质域名?  成都网站制作报价公司,成都工业用气开户费用?  高性能网站服务器部署指南:稳定运行与安全配置优化方案  儿童网站界面设计图片,中国少年儿童教育网站-怎么去注册?  已有域名和空间,如何快速搭建网站?  建站之星展会模板:智能建站与自助搭建高效解决方案  合肥做个网站多少钱,合肥本地有没有比较靠谱的交友平台?  如何访问已购建站主机并解决登录问题?  北京网站制作公司哪家好一点,北京租房网站有哪些?  深圳网站制作费用多少钱,读秀,深圳文献港这样的网站很多只提供网上试读,但有些人只要提供试读的文章就能全篇下载,这个是怎么弄的?  制作农业网站的软件,比较好的农业网站推荐一下?  太原网站制作公司有哪些,网约车营运证查询官网?  制作国外网站的软件,国外有哪些比较优质的网站推荐?  招贴海报怎么做,什么是海报招贴?  c++怎么实现高并发下的无锁队列_c++ std::atomic原子变量与CAS操作【详解】  香港服务器建站指南:免备案优势与SEO优化技巧全解析  免费的流程图制作网站有哪些,2025年教师初级职称申报网上流程?  建站之星会员如何解锁更多建站功能?  如何在阿里云香港服务器快速搭建网站?  如何彻底卸载建站之星软件? 

您的项目需求

*请认真填写需求信息,我们会在24小时内与您取得联系。