设计模式之工厂模式
2015-12-20 22:56
274 查看
工厂模式是一种创造型的设计模式,提供更好的方式创造对象。
在工厂模式中,我们可以创建对象而客户端无需关心业务逻辑。
例子
在下面的小节中,我们将会展示如何使用工厂设计模式去创建对象。这些对象是使用工厂模式创建的形状对象。比如圆形,正方形。
首先我们给出形状的接口。
然后我们可以创建对象实现这个接口。
下面代码是矩形类代码。
正方形:
圆形代码:
工厂设计模式核心在于工厂类。下面代码展示如何通过工厂类创建一系列形状对象。
ShapeFactory类创建形状对象基于字符串置于getShape()获得,譬如字符串"CIRCLE",代表创建一个圆形对象。
下面是主方法展示如何通过工厂对象创建对象。
下面试上面代码的输出结果。
Inside Circle::draw() method
Inside Rectangle ::draw() method.
Inside Square::draw() method.
在工厂模式中,我们可以创建对象而客户端无需关心业务逻辑。
例子
在下面的小节中,我们将会展示如何使用工厂设计模式去创建对象。这些对象是使用工厂模式创建的形状对象。比如圆形,正方形。
首先我们给出形状的接口。
public interface Shape { void draw(); }
然后我们可以创建对象实现这个接口。
下面代码是矩形类代码。
public class Rectangle implements Shape { @Override public void draw() { System.out.println("Inside Rectangle::draw() method."); } }
正方形:
public class Square implements Shape { @Override public void draw() { System.out.println("Inside Square::draw() method."); } }
圆形代码:
public class Circle implements Shape { @Override public void draw() { System.out.println("Inside Circle::draw() method"); } }
工厂设计模式核心在于工厂类。下面代码展示如何通过工厂类创建一系列形状对象。
ShapeFactory类创建形状对象基于字符串置于getShape()获得,譬如字符串"CIRCLE",代表创建一个圆形对象。
public class ShapeFactory { public Shape getShape(String shapeType) { if (shapeType == null) { return null; } if (shapeType.equals("CIRCLE")) { return new Circle(); } if (shapeType.equals("RECTANGLE")) { return new Rectangle(); } if (shapeType.equals("SQUARE")) { return new Square(); } return null; } }
下面是主方法展示如何通过工厂对象创建对象。
public class Main { public static void main(String[] args) { ShapeFactory shapeFactory = new ShapeFactory(); Shape shape1 = shapeFactory.getShape("CIRCLE"); shape1.draw(); Shape shape2 = shapeFactory.getShape("RECTANGLE"); shape2.draw(); Shape shape3 = shapeFactory.getShape("SQUARE"); shape3.draw(); } }
下面试上面代码的输出结果。
Inside Circle::draw() method
Inside Rectangle ::draw() method.
Inside Square::draw() method.
相关文章推荐
- PropertyChangeListener简单理解
- 什么是设计模式
- 设计模式之创建型模式 - 特别的变量问题
- 七、设计模式——装饰模式
- 设计模式总结
- 设计模式之创建型模式
- 浅谈设计模式的学习
- PHP设计模式之装饰者模式代码实例
- php设计模式之单例模式实例分析
- 介绍php设计模式中的工厂模式
- PHP设计模式之适配器模式代码实例
- asp.net 简单工厂模式和工厂方法模式之论述
- 深入浅出23种设计模式
- 浅谈c#设计模式之单一原则
- C#设计模式之观察者模式实例讲解
- C#设计模式之单例模式实例讲解
- 学习JavaScript设计模式(接口)
- 深入理解JavaScript系列(28):设计模式之工厂模式详解
- 设计模式之六大设计原则