Spring中的工厂模式和单例模式

时间:2024-01-06 08:11:08

Spring预备知识(适合中小型项目)

作用:集成和管理其他框架

工厂模式:

A  a  = new A( );

将类所要创建的对象写入工厂,统一进行管理

package com.spring;

public class TestSimpleFactoryPattern {

/**

* 工厂模式:利用工厂模式调用两个类

*/

public static void main(String[] args) {

// TODO Auto-generated method stub

CarFactory factory = new CarFactory();//创建工厂模式的 CarFactory类的对象

Car c = factory.createCar("auti");//调用 CarFactory类中的方法创建对象

c.run();//调用所需类中的方法

}

}

class CarFactory{//建立工厂模式的 CarFactory类

public Car createCar(String type){//工厂模式的 CarFactory类中的createCar方法

if("auti".equalsIgnoreCase(type)){

return new Audi();

}else if("auto".equalsIgnoreCase(type)){

return new Auto();

}else{

return null;

}

}

}

interface Car{

public void run();

}

class Audi implements Car

{

@Override

public void run() {

System.out.println("奥迪车跑跑跑!");

}

}

class Auto implements Car//接口Car:用到了多态

{

@Override

public void run() {

System.out.println("奥拓车跑跑跑!");

}

}

单例模式:

某一个类只有一个实例

package com.spring;

public class ClassicSingleton {

public static ClassicSingleton instance = null;//此处null可以省略

private ClassicSingleton(){//构造器私有,外部不能调用

}

public synchronized ClassicSingleton getInstance(){//synchronized为多线程,公开一个方法

if(instance==null){

instance = new ClassicSingleton();//永远只能调用一次

}

return instance;

}

}

面向接口编程

动态代理:AOP内部核心机制