定义:建立创建对象的工厂
用途:创建对象
一、工厂模式一
思想:
1、工厂接口类
2、工厂实现类
3、产品接口类
4、产品实现类
1、工厂接口类
public interface Factory
{
Car CreateCar();
}
2、工厂实现类
public class SportFactory implements IFactory
{
public Car CreateCar()
{
return new SportCar();
}
}
public class JeepFactory implements IFactory
{
public Car CreateCar()
{
return new JeepCar();
}
}
3、产品接口类
public interface Car
{
void GetCar();
}
4、产品实现类
public class SportCar implements Car
{
public void GetCar()
{
System.out.println("场务把跑车交给范·迪塞尔");
}
}
public class JeepCar implements Car
{
public void GetCar()
{
System.out.println("场务把越野车交给范·迪塞尔");
}
}
5、客户端
public class client {
public static void main(String[] args) {
Factory factory = new SportFactory();
Car car = factory.CreateCar();
car.GetCar(); // 场务把跑车交给范·迪塞尔
}
}
二、工厂模式二
Spring 中的 IoC 的实现原理,就是工厂模式加反射机制
思想:
1、工厂类
3、产品接口类
4、产品实现类
// 产品接口类
interface Fruit {
public abstract void eat();
}
// 产品实现类
class Apple implements Fruit {
public void eat(){
System.out.println("Apple");
}
}
// 产品实现类
class Orange implements Fruit {
public void eat(){
System.out.println("Orange");
}
}
// 工厂类
class Factory {
public static Fruit getInstance(String className) {
Fruit f = null;
try {
f = (Fruit) Class.forName(className).newInstance();
} catch (Exception e) {
e.printStackTrace();
}
return f;
}
}
// 客户端
class Client {
public static void main(String[] args) {
Fruit f = Factory.getInstance("io.github.dunwu.spring.Apple");
if(f != null){
f.eat();
}
}
}
上一篇:静态代理模式
网友评论