您的位置:首页 > 其它

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

2017-10-14 12:57 274 查看
一、单例模式

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

四、测试结果

内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: 
相关文章推荐