单例模式和工厂模式Demo简单演示

1、单例模式java


Singleton.Java:ide


public class Singleton {

	public static Singleton instance = null;
	private Singleton(){}
	public static Singleton getInstance(){
		if(instance==null){
			return new Singleton();
		}
		return instance ;
	}
	
	public void show(){
		System.out.println("Singleton Mode 【单例模式】 !");
	}
}


2、工厂模式测试


AnimalFactory.javaspa


//1.共同的接口  动物接口
interface IAminmal{
	void run(); 
}

//2.实现类1,狗 Dog
class Dog implements IAminmal{

	@Override
	public void run() {
		System.out.println("I'am Dog running....");
	}
	
}

//3.实现类2,猫 Cat
class Cat implements IAminmal{

	@Override
	public void run() {
		System.out.println("I'am Cat running....");
	}
}

//4.实现类3,猪 Pig
class Pig implements IAminmal{

	@Override
	public void run() {
		System.out.println("I'am Pig running....");
	}
}

//4.动物工厂类接口 声明一个方法,用来生产各类各样的动物
interface IAninmalFactory{
	 IAminmal createAnimal(String name);
}

public class AnimalFactory implements IAninmalFactory{

    private IAminmal aminmal = null;
	@Override
	public  IAminmal createAnimal(String name) {
		if(name.equals("Dog")){
			aminmal = new Dog();
		}
	    if(name.equals("Cat")){
	    	aminmal = new Cat();
		}
		if(name.equals("Pig")){
			aminmal = new Pig();
		}
		//1.返回对应的小动物的接口实现的实例
		//2.对于内部(生产者)而言,具体生产哪个动物,是封装好的,已经细化过了
		//3.对于外部(消费者)而言,咱们只要告诉当前的工厂,咱们须要哪个动物就行,生产细节无需关心
		return aminmal;
	}
}


3、单例模式和工厂模式案例 测试code


TestMain.javablog


public class TestMain {
    public static void main(String[] args){
    	
    	//1.单例模式,不管你怎么getInstace,你获得的仍是同一个类的实例,省资源
    	Singleton.getInstance().show();
    	
    	//2.工厂模式, 由动物工厂生产出咱们指定的动物,并利用产生的动物实例调用其run方法
    	IAninmalFactory factory = new AnimalFactory();
    	factory.createAnimal("Pig").run();
    	factory.createAnimal("Cat").run();   	
    }
}


4、测试结果接口