zoukankan      html  css  js  c++  java
  • 简单工厂模式

    简单工厂模式:

      工厂类负责创建的对象比较少,对于对象的创建不关心,一般在简单的场景下使用。

      简单工厂模式的最大优点在于工厂类中包含了必要的逻辑判断,根据客户端的选择条件动态实例化相关的类,对于客户端来说,去除了与具体产品的依赖

    1 public abstract class Animal {
    2     public abstract void sayHello();
    3 }
    1 public class Cat extends Animal{
    2     @Override
    3     public void sayHello() {
    4         System.out.println("sayHello--Cat");
    5     }
    6 }
    1 public class Dog extends Animal {
    2     @Override
    3     public void sayHello() {
    4         System.out.println("sayHello--Dog");
    5     }
    6 }
     1 public class AnimalFactory {
     2     /**
     3      * 工厂方法:根据接收到的要哪个对象的类型再决定创建对应的对象
     4      * @param animalName 动物类型
     5      * @return 对应的动物类对象
     6      */
     7     public static Animal createAnimal(String animalType) {
     8         Animal animal = null;
     9         switch (animalType) {
    10         case "cat":
    11             animal = new Cat();
    12             break;
    13         case "dog":
    14             animal = new Dog();
    15                        break;
    16         }
    17         return animal;
    18     }
    19 }       

    1
    public class AnimalTest { 2 public static void main(String[] args) { 3 Animal animal = null; 4 //上溯造型 5 animal = AnimalFactory.createAnimal("dog");//返回dog对象 6 animal.sayHello();//结果:sayHello--Dog 7 //上溯造型 8 animal = AnimalFactory.createAnimal("cat");//返回dog对象 9 animal.sayHello();//结果:sayHello--Cat 10 } 11 }

    UML图:

    不能只满足于写完代码运行结果正确就完事,时常考虑如何让代码更加简练更加容易维护、容易扩展和复用,只有这样才可以真正得到提高 --《来自大话设计模式》
  • 相关阅读:
    在 kylin-v10环境中搭建 electron
    二叉树建树
    python 从txt文件中提取数据保存到 xlxs 文件中
    openpyxl 插件写入数据
    python时间格式转换
    vue-typescript-element-template使用总结
    vue3入门
    typescript入门
    记录下谷歌 浏览器请求数据时遇302,重新连接的问题
    uni使用render.js视图层与逻辑层传数据 的问题
  • 原文地址:https://www.cnblogs.com/lixianyuan-org/p/9439585.html
Copyright © 2011-2022 走看看