`

简单工厂方法实现

阅读更多
简单工厂方法并不属于真正的设计模式
  • 首先创建所有鸟类的祖先类
  • package com.simplyFactory;
    
    public interface Bird {
    	public void fly();
    	public void sing();
    
    }
    

  • 创建两个实现类Eagle和Dove
  • package com.simplyFactory;
    
    public class Eagle implements Bird {
    
    	public void fly() {
    		System.out.println("I am eagle, I can fly high");
    	}
    
    	public void sing() {
    		System.out.println("I can sing loud");
    	}
    }
    
    

    package com.simplyFactory;
    
    public class Dove implements Bird {
    
    	public void fly() {
    		System.out.println("I am a dove, I can fly");
    	}
    
    	public void sing() {
    		System.out.println("I am a dove , I can't sing");
    	}
    
    }
    

  • 定义简单鸟类工厂SimpleBirdFactory
  • package com.simplyFactory;
    
    public class SimpleBirdFactory {
    	public static Bird createBird(String type) {
    		Bird bird = null;
    		
    		if (type.equals("dove")) {
    			bird = new Dove();
    		} else if (type.equals("eagle")) {
    			bird = new Eagle();
    		}
    		return bird;
    	}
    
    }
    
    

  • 编写测试程序
  • package com.simplyFactory;
    
    public class testFactory {
    
    	public static void main(String[] args) {
    				
    		Bird dove = SimpleBirdFactory.createBird("dove");
    		dove.fly();
    		dove.sing();
    		
    		Bird eagle = SimpleBirdFactory.createBird("eagle");
    		eagle.fly();
    		eagle.sing();
    		
    	}
    }
    
    


  • 总结
  • 1.工厂方法可以静态,也可以非静态,用静态的话不需要实例化一个工厂
    2.简单工厂封装了具体实现

    分享到:
    评论

    相关推荐

    Global site tag (gtag.js) - Google Analytics