zoukankan      html  css  js  c++  java
  • 一个简单的工厂模式(一个接口,多个实现,通过调用条件的不同,分别去调用符合的实现)

    接口:Animal.java

    package Factoryface;

    public interface Animal {
    public void eat();
    public void sport();

    }
    实现类(举例两个):Cat.java
    package Model;

    import Factoryface.Animal;

    public class Cat implements Animal {
    @Override
    public void eat() {
    System.out.println("猫喜欢吃鱼");
    }

    @Override
    public void sport() {
    System.out.println("猫很懒,不喜欢运动");
    }
    }
    Dog.java
    package Model;

    import Factoryface.Animal;

    public class Dog implements Animal {
    @Override
    public void eat() {
    System.out.println("狗喜欢啃骨头");
    }

    @Override
    public void sport() {
    System.out.println("狗喜欢运动,喜欢玩球");
    }
    }
    简单工厂:Factory1.java
    package Model;

    import Factoryface.Animal;

    public class Factory1 {
    //定义两个常量,负责与调用者交互
    public static final String CAT="cat";
    public static final String Dog="dog";
    //根据调用者传来的描述,来返回调用者所需要的实现(str就是调用者传来的参数)
    public Animal getAnimal(String str){
    if (CAT.equals(str)){
    return new Cat();
    }else if(Dog.equals(str)){
    return new Dog();
    }else{
    return null;
    }
    }
    }
    模拟调用者:FactoryTest.java
    package Test;

    import Factoryface.Animal;
    import Model.Factory1;

    //模拟调用者调用条件符合"dog"类
    public class FactoryTest {
    public static void main(String[] args){
    Factory1 factory1 = new Factory1();
    Animal animal = null;
    animal = factory1.getAnimal("dog");
    animal.eat();
    animal.sport();
    }
    }
    输出:

     
     
     


    我是代码搬运工!!!
  • 相关阅读:
    tomcat常见错误
    tomcat——大致简介和执行过程
    JSON的基本操作
    VS Code 终端显示问题
    VS Code在本地进行调试和打开本地服务器
    重做了一下我的音乐播放器
    Treimu更新记录1.2.9.0
    Android开发中Eclipse里的智能提示设置
    一次面试经历
    正确处理WPF中Slider值改变事件的方式
  • 原文地址:https://www.cnblogs.com/FanKL/p/12376289.html
Copyright © 2011-2022 走看看