这是什么啊

工厂设计模式

interface Animal{
 void eat();
 void sleep();
 void move();
}
class Dog implements Animal{
 public void eat(){
  System.out.println("狗吃");
 }
 public void sleep(){
  System.out.println("狗睡");
 }
 public void move(){
  System.out.println("狗动");
 }
 public void lookHouse(){
  System.out.println("狗看门");
 }
}
class Wolf implements Animal{
 public void eat(){
  System.out.println("狼吃");
 }
 public void sleep(){
  System.out.println("狼睡");
 }
 public void move(){
  System.out.println("狼动");
 }
 public void shout(){
  System.out.println("狼嗷嗷叫");
 }
}
/**
  * 工厂类的主要职责:生产对象
*/
class SimpleFactory{
 /**
   * 工厂中的方法都是公共的静态的返回接口类型的方法
 */
 public static Animal getInstance(String type){
  if("dog".equals(type)){
   return new Dog();
  }else if("wolf".equals(type)){
   return new Wolf();
  }else {
   System.out.println("无效的类型");
   return null;
  }
 }
 static void print(Animal al){
  if(al!=null){
   al.eat();
   al.sleep();
   al.move();
   if(al instanceof Dog){
    Dog dog=(Dog)al;
    dog.lookHouse();
   }else if(al instanceof Wolf){
    Wolf wolf=(Wolf)al;
    wolf.shout();
   }
  }
 
 }
 static void exe(){
  Animal dog=SimpleFactory.getInstance("dog");
  Animal wolf=SimpleFactory.getInstance("wolf");
  Animal al=SimpleFactory.getInstance("fox");
  SimpleFactory.print(dog);
  SimpleFactory.print(wolf);
  SimpleFactory.print(al);
 }
}
public class TestSimpleFactoryDemo08{
 public static void main(String[] args){
  /*Animal dog=new Dog();
  dog.eat();
  dog.sleep();
  dog.move();
  Animal wolf=new Wolf();
  wolf.eat();
  wolf.sleep();
  wolf.move();*/
  /*
  Animal dog=new Dog();
  Animal wolf=new Wolf();
  print(dog);
  print(wolf);
  */
 
  SimpleFactory.exe();
 }
}
工厂2
import java.util.*;
interface Animal{
 void sleep();
}
class Dog implements Animal{
 void look(){
  System.out.println("看家");
 }
 public void sleep(){
  System.out.println("狗睡觉");
 }
}
class Cat implements Animal{
 void catchfash(){
  System.out.println("抓鱼");
 }
 public void sleep(){
  System.out.println("猫睡觉");
 }
}
class Factory{
 
 public static Animal fact(String a){
  if(a.equals("cat")){
   return new Cat();
  }else if(a.equals("dog")){
   return new Dog();
  }else{
   return null;
  }
 }
 
}
class Demo103{
public static void main(String[] a){
 Factory fa=new Factory();
 System.out.print("请输入狗或猫:");
 Scanner sc=new Scanner(System.in);
 fa.fact(sc.next()).sleep();
}
}
posted @ 2015-12-03 21:57  陈旭缘  阅读(68)  评论(0)    收藏  举报
这是什么