全网整合营销服务商

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

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

java 工厂模式的实例详解

java 工厂模式的实例详解

工厂方法中的“工厂”和我们平常理解的一样:用于生产产品。

而客户是要和产品打交道,所以工厂方法模式的意义在于把客户和产品分开,达到解耦和更灵活的目的。

一般我们有一个产品的抽象类,然后有几个具体的产品,如下:

//抽象产品角色
public interface Product{
  void product();
}
//具体产品1
public class Pro1 implements Product{
  @Override
  public void product() {
    System.out.println("产品1");
  }
}
//具体产品2
public class Pro2 implements Product{
  @Override
  public void product() {
    System.out.println("产品2");
  }
}

接着客户要购买产品,他不直接和产品接触,而是使用工厂,所以我们有一个工厂:

public class Factory { 
    public static Product buy(type) { 
      switch (type) { 

      case 1: 
        return new Pro1(); 

      case 2: 
        return new Pro2(); 

      default: 
        break; 
      } 
      return null; 
    } 
  } 

客户通过Factory .buy(type);即可购买到自己想要的产品。

————— 这就是 简单工厂模式,又称为 静态工厂方法模式。

如果新增了一款产品,我们多写一个产品类Pro3就可以了,但在工厂上我们要添加新的代码才能生产,这显然不符合“开闭原则(对扩展开放;对修改封闭)”,所以我们把工厂抽象,添加具体的工厂类,由客户选择某一个工厂,如下:

//抽象工厂
public interface Factory {
  Product buy();
}
//具体工厂1
public class Factory1 implements Factory {
  @Override
  public Product buy() {
    return new Pro1();
  }
}
//具体工厂2
public class Factory2 implements Factory {
  @Override
  public Product buy() {
    return new Pro2();
  }
}

当新增了一款产品,我们多创建一个具体的工厂来生产就可以了。但是当产品种类非常多时,会出现大量的与之对应的工厂对象,这并不是我们所希望的。

——— 这就是 工厂方法模式

当产品出现多个抽象时,我们可能会有多个产品接口,这个场景就成了我们所说的

——- 抽象工厂模式

总结:

无论是简单工厂模式,工厂方法模式,还是抽象工厂模式,他们都属于工厂模式,在形式和特点上也是极为相似的,他们的最终目的都是为了解耦。在使用时,我们不必去在意这个模式到底工厂方法模式还是抽象工厂模式,因为他们之间的演变常常是令人琢磨不透的。经常你会发现,明明使用的工厂方法模式,当新需求来临,稍加修改,加入了一个新方法后,由于类中的产品构成了不同等级结构中的产品族,它就变成抽象工厂模式了;而对于抽象工厂模式,当减少一个方法使的提供的产品不再构成产品族之后,它就演变成了工厂方法模式。 所以,在使用工厂模式时,只需要关心降低耦合度的目的是否达到了。

以上就是java 工厂模式的实例详解,如有疑问请留言或者到本站社区交流讨论,感谢阅读,希望能帮助到大家,谢谢大家对本站的支持!


# java  # 工厂模式  # 工厂模式的实例详解  # 设计模型  # 深入理解java三种工厂模式  # Java设计模式之工厂模式(Factory模式)介绍  # java 工厂模式的讲解及优缺点的介绍  # java 单例模式和工厂模式实例详解  # Java设计模式之静态工厂模式详解  # Java设计模式之抽象工厂模式实例详解  # 23种设计模式(2) java工厂模式  # java设计模式之简单工厂模式  # Java设计模式之装饰者模式详解和代码实例  # Java开发中的23种设计模式详解(推荐)  # Java工厂模式定义与用法实例分析  # 多个  # 这就是  # 它就  # 就可以  # 有一个  # 都是  # 他们的  # 会有  # 成了  # 如有  # 但在  # 他不  # 琢磨不透  # 希望能  # 达到了  # 新增了  # 有几个  # 只需要  # 不符合  # 因为他们 


相关文章: 武汉网站如何制作,黄黄高铁武穴北站途经哪些村庄?  在线制作视频网站免费,都有哪些好的动漫网站?  如何快速搭建虚拟主机网站?新手必看指南  如何配置支付宝与微信支付功能?  网站制作培训多少钱一个月,网站优化seo培训课程有哪些?  如何在建站之星网店版论坛获取技术支持?  电商网站制作公司有哪些,1688网是什么意思?  动图在线制作网站有哪些,滑动动图图集怎么做?  建站之星手机一键生成:多端自适应+小程序开发快速建站指南  香港服务器建站指南:外贸独立站搭建与跨境电商配置流程  成都品牌网站制作公司,成都营业执照年报网上怎么办理?  宝塔新建站点报错如何解决?  如何通过WDCP绑定主域名及创建子域名站点?  5种Android数据存储方式汇总  如何注册花生壳免费域名并搭建个人网站?  专业制作网站的公司哪家好,建立一个公司网站的费用.有哪些部分,分别要多少钱?  建站之星代理费用多少?最新价格详情介绍  如何自定义建站之星网站的导航菜单样式?  网站制作公司,橙子建站是合法的吗?  建站之星如何实现五合一智能建站与营销推广?  简单实现Android验证码  如何快速重置建站主机并恢复默认配置?  详解jQuery中基本的动画方法  南京做网站制作公司,南京哈发网络有限公司,公司怎么样,做网页美工DIV+CSS待遇怎么样?  Swift中循环语句中的转移语句 break 和 continue  济南网站制作的价格,历城一职专官方网站?  如何在Golang中引入测试模块_Golang测试包导入与使用实践  官网自助建站系统:SEO优化+多语言支持,快速搭建专业网站  青岛网站设计制作公司,查询青岛招聘信息的网站有哪些?  已有域名和空间,如何快速搭建网站?  深入理解Android中的xmlns:tools属性  无锡营销型网站制作公司,无锡网选车牌流程?  模具网站制作流程,如何找模具客户?  南平网站制作公司,2025年南平市事业单位报名时间?  油猴 教程,油猴搜脚本为什么会网页无法显示?  如何获取开源自助建站系统免费下载链接?  大连网站设计制作招聘信息,大连投诉网站有哪些?  小捣蛋自助建站系统:数据分析与安全设置双核驱动网站优化  深圳 网站制作,深圳招聘网站哪个比较好一点啊?  建站之星代理如何获取技术支持?  制作网站外包平台,自动化接单网站有哪些?  商务网站制作工程师,从哪几个方面把握电子商务网站主页和页面的特色设计?  常州企业建站如何选择最佳模板?  如何高效利用200m空间完成建站?  深圳网站制作公司好吗,在深圳找工作哪个网站最好啊?  如何解决ASP生成WAP建站中文乱码问题?  如何快速搭建高效WAP手机网站吸引移动用户?  高端云建站费用究竟需要多少预算?  定制建站如何定义?其核心优势是什么?  企业网站制作公司网页,推荐几家专业的天津网站制作公司? 

您的项目需求

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