java设计模式_工厂模式
-
关于设计模式
设计模式(Design Pattern)是一套被反复使用、多数人知晓的、经过分类的、代码设计经验的总结,是一种设计思维,使用设计模式的目的:为了代码可重用性、让代码更容易被他人理解、保证代码可靠性。 设计模式使代码编写真正工程化。使用设计模式,使得开发变得更规范和简单。
-
工厂模式
- 概述:属于创建型设计模式,需要生成的对象叫做产品 ,生成对象的地方叫做工厂。
- 使用场景:在任何需要生成复杂对象的地方,都可以使用工厂方法模式, 直接用new可以完成的不需要用工厂模式。个人理解,重点就是这个复杂 (构造函数有很多参数)和 是否可以 直接用new。
-
工厂模式例子
假设现在的场景是某个宝马子生产公司,正在按需求生产宝马汽车,那么,如下:
- 公司具有宝马汽车,该公司的汽车都有共同的行为所以有了该汽车公司的一个接口,用来规范该公司的所有汽车的行为属性,这里假设,只有展示行为——show();
-
1 /** 2 * 接口:定义该公司产品的通用属性和行为 3 * @author 4 * 5 */ 6 7 public interface BmwCar { 8 9 public String showBmwCar(); 10 }
- 具体实现该接口,也就是实现该公司符合该要求的汽车产品,如下,假设,该生产公司只生产Bmw523和Bmw320两个产品;
-
1 public class Bmw523 implements BmwCar{ 2 3 @Override 4 public String showBmwCar() { 5 String Bmw523Info = "我是Bmw523"; 6 return Bmw523Info; 7 } 8 9 }
public class Bmw320 implements BmwCar{ @Override public String showBmwCar() { String Bmw320Info = "我是Bmw320"; return Bmw320Info; } }
- 来一个具体生产创作汽车产品的具体工厂BmwFactory;
-
1 /** 2 * 具有生产功能的工厂 3 * @author 4 * 5 */ 6 7 public class BmwFactory { 8 9 public BmwCar createBmw320() { 10 return new Bmw320(); 11 } 12 13 public BmwCar createBmw532() { 14 return new Bmw523(); 15 } 16 }
- 来一个实例测试,我要买车啦
-
1 public class TestCreateBmw { 2 3 public static void main(String[] args) { 4 5 BmwFactory myFactory = new BmwFactory();//实例化工厂 6 BmwCar myBmw = myFactory.createBmw320();//实例化一个产品 7 System.out.println( myBmw.showBmwCar() );//使用该产品 8 } 9 10 }
*