java  工厂方法详解及实例代码

 更新时间:2017年01月25日 09:45:10   投稿:lqh  
这篇文章主要介绍了java 工厂方法详解及实例代码的相关资料,需要的朋友可以参考下

工厂方法概述

工厂方法模式中抽象工厂类负责定义创建对象的接口,具体对象的创建工作由继承抽象工厂的具体类实现。

优点

客户端不需要在负责对象的创建,从而明确了各个类的职责,如果有新的对象增加,只需要增加一个具体的类和具体的工厂类即可,不影响已有的代码,后期维护容易,增强了系统的扩展性

 缺点

需要额外的编写代码,增加子工作量

public class IntegerDemo {
  public static void main(String[] args) {
    Factory factory = new DogFactory();
    Animal animal = factory.createAnimal();
    animal.eat();
 
    factory = new CatFactory();
    animal = factory.createAnimal();
    animal.eat();
  }
}
 
abstract class Animal {// 抽象类
  public abstract void eat();
}
 
class Dog extends Animal {// 狗
  public void eat() {
    System.out.println("a dog is eatting.");
  }
}
 
class Cat extends Animal {// 猫
  public void eat() {
    System.out.println("a cat is eatting.");
  }
}
 
interface Factory {// 接口
  public abstract Animal createAnimal();
}
 
class DogFactory implements Factory {// 实现接口
  public Animal createAnimal() {
    return new Dog();
  }
}
 
class CatFactory implements Factory {// 实现接口
  public Animal createAnimal() {
    return new Cat();
  }
}

感谢阅读,希望能帮助到大家,谢谢大家对本站的支持!

相关文章

  • Java SpringBoot整合SpringCloud

    Java SpringBoot整合SpringCloud

    SpringCloud专注于为典型的用例和扩展机制提供良好的开箱即用体验,今天小编就带大家认识SpringCloud都有些什么特点,感兴趣的小伙伴留下来阅读全文吧
    2021-09-09
  • 使用Spring Security和JWT实现安全认证机制

    使用Spring Security和JWT实现安全认证机制

    在现代 Web 应用中,安全认证和授权是保障数据安全和用户隐私的核心机制,Spring Security 是 Spring 框架下专为安全设计的模块,具有高度的可配置性和扩展性,而 JWT则是当前流行的认证解决方案,所以本文介绍了如何使用Spring Security和JWT实现安全认证机制
    2024-11-11
  • elasticsearch集群查询超10000的解决方案

    elasticsearch集群查询超10000的解决方案

    ES为了避免用户的过大分页请求造成ES服务所在机器内存溢出,默认对深度分页的条数进行了限制,默认的最大条数是10000条,这篇文章主要给大家介绍了关于elasticsearch集群查询超10000的解决方案,需要的朋友可以参考下
    2024-08-08
  • Java最简单的DES加密算法实现案例

    Java最简单的DES加密算法实现案例

    下面小编就为大家带来一篇Java最简单的DES加密算法实现案例。小编觉得挺不错的,现在就分享给大家,也给大家做个参考。一起跟随小编过来看看吧
    2017-06-06
  • 基于Java HashMap的死循环的启示详解

    基于Java HashMap的死循环的启示详解

    本篇文章是对Java HashMap的死循环进行了详细的分析介绍,需要的朋友参考下
    2013-05-05
  • spring boot项目中集成rocketmq详细步骤

    spring boot项目中集成rocketmq详细步骤

    这篇文章主要给大家介绍了关于spring boot项目中集成rocketmq的相关资料,springboot集成rocketmq的方法非常简单,文中直接上代码,需要的朋友可以参考下
    2023-09-09
  • 全面解析JPA 仓库repository中的findAll()方法

    全面解析JPA 仓库repository中的findAll()方法

    这篇文章主要介绍了全面解析JPA 仓库repository中的findAll()方法,具有很好的参考价值,希望对大家有所帮助。如有错误或未考虑完全的地方,望不吝赐教
    2022-02-02
  • Java合并两个及以上有序链表的示例详解

    Java合并两个及以上有序链表的示例详解

    这篇文章主要通过两个例题为大家介绍一下Java合并两个及以上有序链表的实现方法,文中的示例代码讲解详细,具有一定的学习价值,需要的可以参考一下
    2022-11-11
  • Spring @Transactional事务失效的原因分析

    Spring @Transactional事务失效的原因分析

    一个程序中不可能没有事务,Spring中,事务的实现方式分为两种:编程式事务和声明式事务。日常项目中,我们都会使用声明式事务 @Transactional来实现事务,本文来和大家聊聊什么情况会导致@Transactional事务失效
    2022-09-09
  • SpringBoot集成本地缓存性能之王Caffeine示例详解

    SpringBoot集成本地缓存性能之王Caffeine示例详解

    这篇文章主要为大家介绍了SpringBoot集成本地缓存性能之王Caffeine的示例详解,有需要的朋友可以借鉴参考下,希望能够有所帮助,祝大家多多进步,早日升职加薪
    2022-07-07

最新评论