Java 设计模式——工场模式(Factory method)
来源:互联网 发布:陈浩民 妻子 知乎 编辑:程序博客网 时间:2024/06/06 03:21
工场模式:通过一个公共接口来将 对象的创建逻辑与用户分离。
例子:
创建一个ShapeFactory获得不同的Shape对象(Circle,Rectangle,Square)
第一步:创建接口Shape.java
public interface Shape {void draw();}
第二步:创建具体的类来实现接口
Rectangle.java
public class Rectangle implements Shape {@Overridepublic void draw() {System.out.println("Inside Rectangle::draw() method.");}}
Rectangle.java
public class Square implements Shape {@Overridepublic void draw() {System.out.println("Inside Square::draw() method.");}}
Circle.java
public class Circle implements Shape{@Overridepublic void draw() {System.out.println("Inside Circle::draw() method.");}}
第三步:创建工场类ShapeFactory.java,根据用户传入的信息获得对应的类的实例
public class ShapeFactory {public Shape getShape(String shapeType){if(shapeType == null){return null;}if(shapeType.equalsIgnoreCase("CIRCLE")){return new Circle();}if(shapeType.equalsIgnoreCase("RECTANGLE")){return new Rectangle();}if(shapeType.equalsIgnoreCase("SQUARE")){return new Square();}return null;}}
第四步:使用工场类测试 FactoryPatternDemo.java
public class FactoryPatternDemo {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.
0 0
- Java 设计模式——工场模式(Factory method)
- 设计模式之Factory Method(工场方法)
- Java设计模式 —— 工厂方法模式 (Factory Method)
- JAVA设计模式 —工厂方法模式(Factory Method)
- 设计模式(十二)—— Factory Method 模式
- 设计模式(五)——工厂模式(Factory Method)
- Java设计模式——工厂方法(Factory Method)
- JAVA设计模式——工厂方法(Factory Method)模式
- java设计模式1——工厂方法模式(Factory Method)
- Java设计模式——工厂方法模式(factory method)
- Java设计模式-----Factory Method模式
- Java设计模式-----Factory Method模式
- java设计模式(一)--工厂模式(Factory Method)
- Java设计模式-工厂方法(Factory Method)模式
- Java设计模式 - 工厂方法模式(Factory Method)
- java设计模式--工厂方法模式(Factory Method)
- java设计模式学习 ----- 工厂方法模式(Factory Method)
- java设计模式1--工厂方法模式(Factory Method)
- iOS学习之UISwitch控件两种使用方法和监听
- 第二天-关键字、控制语句
- 根据java编译器规则在Class中搜索匹配指定参数类型表的泛型方法(GenericMethod)
- mysql和eclipse都设置了utf8编码,保存时中文依然乱码
- jQuery("#").autocomplete 出现Status Code:404 Not Found
- Java 设计模式——工场模式(Factory method)
- iOS设计模式——委托(delegate)
- meta标签之viewport
- Objective-C入门18:KVO
- listView使用的万能的BaseAdapter
- UIKit框架的介绍
- Servlet中的GET和POST之间的区别
- Theano 配置记(Anaconda+Theano 0.7+GPU加速+VS2010)
- TIME_WAIT状态(2MSL)的作用