单例模式和工厂模式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();
}
}
四、测试结果
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();
}
}
四、测试结果
相关文章推荐
- 设计模式之--工厂模式详解(简单工厂、工厂方法、抽象工厂)
- 设计模式 - 工厂模式(简单,工厂方法,抽象工厂)
- 设计模式 篇 单子模式 门面模式 适配器 工厂模式 观察者模式 命令者模式 装饰者模式 代理模式 简单讲解
- 设计模式 篇 单子模式 门面模式 适配器 工厂模式 观察者模式 命令者模式 装饰者模式 代理模式 简单讲解
- 工厂模式三部曲:简单工厂模式
- Objective-C 工厂模式(上) -- 简单工厂模式
- 设计模式解密(2)- 工厂模式(简单工厂、工厂方法、抽象工厂)
- 简单工厂模式和工厂方法模式Demo
- C++设计模式之一 工厂模式(简单工厂、工厂和抽象工厂)
- 【23种设计模式】创建型模式 > 三个工厂模式(简单工厂、抽象工厂、工厂方法)
- 工厂模式三部曲之一_简单工厂模式
- 设计模式 篇 单子模式 门面模式 适配器 工厂模式 观察者模式 命令者模式 装饰者模式 代理模式 简单讲解
- 设计模式 篇 单子模式 门面模式 适配器 工厂模式 观察者模式 命令者模式 装饰者模式 代理模式 简单讲解
- 设计模式学习003——工厂模式(工厂方法、抽象工厂),简单工厂【也叫静态工厂】
- 简单工厂模式与工厂模式
- 设计模式-工厂模式-简单工厂
- 工厂模式实现方式、使用场景(包括基于反射的简单工厂模式)
- C++设计模式之一 工厂模式(简单工厂、工厂和抽象工厂)
- Android_观察者模式简单Demo
- WCF----最简单的winform客户端回调服务端WCFDemo下载,双工模式,IIS 6.0