工厂方法,简单粗暴得理解就是:有一些相似的工厂,他们有着同一个方法,并且生产同样类型的产品。再粗暴 一点就是:比如有2家工厂,都生产汽车,一家叫做宝马公司,一家叫做比亚迪股份,他们都有一个方法叫做“造车”。
如何实现这个场景呢?
超级无敌简单:分三步走:1、定义产品接口和产品 。 2、定义抽象的工厂类和具体工厂类。 3、调用。
1、定义产品接口和产品
public interface Car { //定义一个Car的接口,里边只有一个简单的run的方法 public void run(); } class Bmw implements Car{ //定义宝马汽车,并且实现run方法 public void run() { System.out.println("我是大宝马,跑起来非常拉风!!"); } } class Byd implements Car{ //定义比亚迪汽车,并且实现run方法 public void run() { System.out.println("我是小比亚迪,跑起来一般般~~"); } }
2、定义抽象的工厂类和具体的工厂类
abstract class CarFactory{ //定义一个抽象的工厂类,里边有一个抽象方法:造车 public abstract Car createCar(); } class BmwFactory extends CarFactory{ //宝马的工厂,实现生产宝马的方法 public Car createCar() { return new Bmw(); } } class BydFactory extends CarFactory{ //比亚迪的工厂,实现生产比亚迪的方法 public Car createCar() { return new Byd(); } }
3、调用来看看!!
public static void main(String[] args) { CarFactory bydFactory=new BydFactory(); bydFactory.createCar().run(); CarFactory bmwFactory=new BmwFactory(); bmwFactory.createCar().run(); } 结果: 我是小比亚迪,跑起来一般般~~ 我是大宝马,跑起来非常拉风!!
总结:
工厂方法的应用场景:比如上述例子。
工厂方法的好处:让程序变得更加容易扩展!
举个例子:要在上述例子加入一个丰田公司和丰田车,那怎么办?非常easy。直接看代码!
class Toyota implements Car{ //先定义车
public void run() {
System.out.println("我是丰田轿车,大家不要砸我");
}
}
class ToyotaFactory extends CarFactory{ //再定义工厂
public Car createCar() {
return new Toyota();
}
}
我的理解就是这样的,欢迎大家留言讨论
相关推荐
设计模式-工厂方法模式视频 设计模式-工厂方法模式视频 设计模式-工厂方法模式视频
c++设计模式-创建型模式-工厂方法模式-最简单的源码-qt工程
设计模式UML图--工厂模式: 包含了简单工厂、工厂方法、抽象工厂方法三个工厂模式的UML
NET设计模式--工厂方法例子源码
设计模式源代码--工厂模式与单例。 代码是本人在学习设计模式时,所写的例子。 适合设计模式的初学者看。
iOS设计模式-工厂方法 理论在这个网页:http://blog.csdn.net/z251257144/article/details/7479183
设计模式_--_工厂模式和单件模式设计模式_--_工厂模式和单件模式
创建型设计模式----抽象工厂模式
设计一个程序来读取多种不同存储格式的图片,针对每一种图片格式都设计一个图片读取器(ImageReader),如GIF格式图片读取器(GifReader)用于读取...请使用工厂方法模式实现该程序的设计,并使用UML画出该模式的类图。
创建型设计模式---工厂设计模式实现
java设计模式----抽象工厂模式,简单工厂模式代码 代码内部
工厂方法模式,主要是利用反射机制获取配置文件的信息,用户可以在不知道如何生产对象的情况下获取对象。包括源代码和文档(文档在本博客的文档说明中)。
本文章通俗易懂的对工厂模式进行了讲解,相信您看完这篇文章会对工厂模式有更深入的了解
设计模式--工厂模式java例子
设计模式-工厂方法 讲解及其源码
设计模式专题之(二)工厂方法模式---设计模式工厂方法模式示例代码(python--c++)
java设计模式-创建者模式-简单工厂模式。详细的讲解了什么是工厂方法模式及应用场景和应用场景的代码事例。及各工厂模式的区别。
JAVA-设计模式-创建型模式-工厂模式
设计模式精解-GoF-23种设计模式解析--附C++源代码,帮助理解!
4.简单工厂-工厂方法-抽象工厂 对比总结