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

一、单例模式


Singleton.Java:


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 【单例模式】 !");
	}
}


二、工厂模式


AnimalFactory.java


//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;
	}
}


三、单例模式和工厂模式案例 测试


TestMain.java


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();   	
    }
}


四、测试结果



评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值