设计模式-创建型-工厂模式
刚开始接触编程是,总会提到设计模式,在这里将一般定义的设计模式一一进行说明,先从简单的设计模式开始。
创建型-工厂模式
SRE实战 互联网时代守护先锋,助力企业售后服务体系运筹帷幄!一键直达领取阿里云限量特价优惠。假设有这样一个工厂,可以生产几种不同类型的笔;我们只向工厂说明一下我们需要的笔型号,工厂就给我们提供相应型号的笔。
假设我们有一个工厂对象(ShapeFactory),可以建几种不同样式的外形(Shape);我们只向工厂对象(ShapeFactory)传我们需要创建的外形(Shape)的参数(如描述参数),对象(ShapeFactory)就给我们穿件不同的外形(Shape)。
本文引用W3Cschool中的java教程中设计模式,链接地址https://www.w3cschool.cn/linux/linux-install.html
外形Shape的接口
public interface Shape { void draw(); }
不同类型的外形对象,即Shape接口的实现类
Rectangle.java
public class Rectangle implements Shape { @Override public void drow() { System.out.println("Inside Rectangle::draw() method."); } }
Square.java
public class Square implements Shape { @Override public void drow() { System.out.println("Inside Square::draw() method."); } }
工厂生产的外形(Shape)有了,几种简单的Shape实现类有了(即几种不同的外形),现在就缺少工厂对象(ShapeFactory)了。工厂对象ShapeFactory中我们需要提供一个方法,用来生产几种不同的外形对象。本文方法为getShape(String shapestyle)。
ShapeFactory.java
public class ShapeFactory { public Shape getShape(String shapestyle) { if(shapestyle==null) { return null; } if("Rectangle".equalsIgnoreCase(shapestyle)) { return new Rectangle(); } if ("Square".equalsIgnoreCase(shapestyle)) { return new Square() ; } return null; } }
好了,到现在为止,我们的工厂已经建好了。怎样用这个工厂呢,我现在需要用工厂的到一个Square对象,也不叫简单了。现在用在ShapeFactoryTest用穿件Square对象为例子
ShapeFactoryTest.java
public class ShapeFactoryTest { public static void main(String[] args) { ShapeFactory shapeFactory = new ShapeFactory(); Shape shape = shapeFactory.getShape("Square"); shape.drow(); } }
程序运行结果
Inside Square::draw() method.
综上,一个简单的工厂模式已经完成了。
为什么说ShapeFactoryTest就是工厂了呢,这样编程怎么就是工厂模式呢?
应为我们自己不单独new Square()和new Rectangle()对象,这个对象有ShapeFactoryTest创建(生产),所以这种设计的方式被大家叫做工厂模式。

更多精彩