当前位置: 首页 > 编程笔记 >

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

洪光霁
2023-03-14
本文向大家介绍java  工厂方法详解及实例代码,包括了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 方法签名详解及实例代码,包括了Java 方法签名详解及实例代码的使用技巧和注意事项,需要的朋友参考一下 java 方法签名,我想做java 开发的朋友也知道,方法签名的重要性,是方法重载的一个比较好的解释,尤其是在后续优化方面,这里记录下,有看到的朋友也可看下, 方法签名的意义 对于同名不同类、同类不同名的方法,方法签名的意义并不是很大,但是对于重载方法来说,方法签名的意义

  • 本文向大家介绍jQuery grep()方法详解及实例代码,包括了jQuery grep()方法详解及实例代码的使用技巧和注意事项,需要的朋友参考一下 什么是jQuery.grep()?   jQuery.grep()是一个查找满足过滤函数的数组元素的函数。原始数组不受影响,返回值为数组。 用法介绍: 写法: jQuery.grep( array, function(elementOfArray,

  • 本文向大家介绍Java Annotation详解及实例代码,包括了Java Annotation详解及实例代码的使用技巧和注意事项,需要的朋友参考一下 一、Annotation简介 从Java1.5开始,Java增加了元数据(MetaData)的支持,也就是Annotation(注释); Annotation能被用来为程序元素(类、方法、成员变量等)设置元数据; Annotation不能影响程序代

  • 本文向大家介绍java HashMap详解及实例代码,包括了java HashMap详解及实例代码的使用技巧和注意事项,需要的朋友参考一下 java HashMap  Map集合的遍历 方式1,根据键查询值 获取所有键的集合 遍历键的集合,获取每一个键 根据键,查询值 方式2,根据键值对的对象查询键和值 获取所有键值对的对象的集合 遍历键值对的对象的集合,获取到每一个键值对的对象 根据键值对的对象

  • 本文向大家介绍Java中Arrays.asList()方法详解及实例,包括了Java中Arrays.asList()方法详解及实例的使用技巧和注意事项,需要的朋友参考一下 Arrays.asList() 是将数组作为列表。 问题来源于: 期望的输出是 list 里面也有4个元素,也就是 size 为4,然而结果是1。 原因如下: 在 Arrays.asList 中,该方法接受一个变长参数,一般可看

  • 本文向大家介绍java 工厂模式的实例详解,包括了java 工厂模式的实例详解的使用技巧和注意事项,需要的朋友参考一下 java 工厂模式的实例详解 工厂方法中的“工厂”和我们平常理解的一样:用于生产产品。 而客户是要和产品打交道,所以工厂方法模式的意义在于把客户和产品分开,达到解耦和更灵活的目的。 一般我们有一个产品的抽象类,然后有几个具体的产品,如下: 接着客户要购买产品,他不直接和产品接触,