一個簡單的工廠模式(一個接口,多個實現,通過調用條件的不同,分別去調用符合的實現)


接口: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();
}
}
輸出:

 
 
 



免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM