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、测试结果接口