码迷,mamicode.com
首页 > 其他好文 > 详细

一个简单的工厂模式(一个接口,多个实现,通过调用条件的不同,分别去调用符合的实现)

时间:2020-02-28 11:50:54      阅读:88      评论:0      收藏:0      [点我收藏+]

标签:技术   简单   package   actor   条件   interface   ima   cat   equals   

接口: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();
}
}
输出:
技术图片
 
 
 


一个简单的工厂模式(一个接口,多个实现,通过调用条件的不同,分别去调用符合的实现)

标签:技术   简单   package   actor   条件   interface   ima   cat   equals   

原文地址:https://www.cnblogs.com/FanKL/p/12376289.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!