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();
    }
    }
    输出:

     
     
     


    我是代码搬运工!!!
  • 相关阅读:
    ASP.NET应用程序开发
    SQL语句导入导出大全
    批量insert数据
    fiddler抓包时,出现的 Tunnel to ***** : 443
    fidder如何模拟设置断点
    fidder :filter过滤,捕捉指定会话
    vs2005生成注释的快捷键
    保护我们的眼睛,让网页中的文字更易读
    推荐一个FireFox 插件SQLite Manager
    SQLServer2005 xp_cmdshell存储的使用
  • 原文地址:https://www.cnblogs.com/FanKL/p/12376289.html
Copyright © 2011-2022 走看看