工厂模式提供创建对象的接口,是最常用的设计模式。工厂模式有很多不同的分类,本实例介绍工厂模式之一的简单工厂模式的使用方法及使用规则。
实现简单工厂模式的技术要点如下:
1.简单工厂模式又称静态工厂模式。从命名上就可以看出这个模式很简单:定义一个用于创建对象的接口。
2.简单工厂模式由工厂类角色、抽象产品角色和具体产品角色组成。
3.工厂类角色是本模式的核心,含有一定的商业逻辑和判断逻辑,它往往由一个具体类实现。
4.抽象产品角色一般是具体产品继承的父类或者实现的接口,由接口或者抽象类来实现。
5.具体产品角色由一个具体类实现。
源程序解读
1.程序中定义一个车接口Car,作为抽象就产品角色;
2.三个车的类Benz,Bike,Bmw 实现了车类Car,是具体产品的角色;
实现简单工厂模式的技术要点如下:
1.简单工厂模式又称静态工厂模式。从命名上就可以看出这个模式很简单:定义一个用于创建对象的接口。
2.简单工厂模式由工厂类角色、抽象产品角色和具体产品角色组成。
3.工厂类角色是本模式的核心,含有一定的商业逻辑和判断逻辑,它往往由一个具体类实现。
4.抽象产品角色一般是具体产品继承的父类或者实现的接口,由接口或者抽象类来实现。
5.具体产品角色由一个具体类实现。
package Pattern;
interface Car{//车的父类,车的接口
public void driver();//开车
}
class Benz implements Car{//奔驰,实现接口的开车方式
public void driver(){
System.out.println("今天咱开奔驰!");
}
}
class Bike implements Car{//自行车,实现接口的开车方式
public void driver(){
System.out.println("现在经济危机,只能骑自行车了!");
}
}
class Bmw implements Car{//宝马,实现接口的开车方式
public void driver(){
System.out.println("今天咱开宝马!");
}
}
class Driver{//车的工厂 //工厂类,核心类
public static Car driverCar(String s) throws Exception {
if(s.equalsIgnoreCase("Benz")){
return new Benz();
}else if(s.equalsIgnoreCase("Bmw")){
return new Bmw();
}else if(s.equalsIgnoreCase("Bike")){
return new Bike();
}else {
throw new Exception();
}
}
}
public class TextSimpleFactory {
public static void main(String[] args) {
try {
Driver d=new Driver();
Car car=d.driverCar("Bike");
System.out.println("经理,今天开什么车");
car.driver();
} catch (Exception e) {
System.out.println("车不见了");
}finally{
System.out.println("................");
}
}
}
源程序解读
1.程序中定义一个车接口Car,作为抽象就产品角色;
2.三个车的类Benz,Bike,Bmw 实现了车类Car,是具体产品的角色;
3.Driver是工厂类角色,是程序的核心类