设计模式之工厂模式(二)
来源:互联网 发布:软件系统售后服务承诺 编辑:程序博客网 时间:2024/06/03 16:55
设计模式之工厂模式(二)
工厂模式(Factory Pattern)是 Java 中最常用的设计模式之一。这种类型的设计模式属于创建型模式,它提供了一种创建对象的最佳方式。
在工厂模式中,我们在创建对象时不会对客户端暴露创建逻辑,并且是通过使用一个共同的接口来指向新创建的对象。
工厂模式的四个步骤:
1.创建一个接口
2.创建实现接口的实体类
3.创建一个工厂类,生成基于给定信息实体类的对象
4.使用改工厂,通过传递类型来获取实体类的对象
步骤一:
public interface Shape { void draw();}
步骤二:
public class Rectangle implements Shape { @Override public void draw() { System.out.println("Inside Rectangle::draw() method."); }}
public class Circle implements Shape { @Override public void draw() { System.out.println("Inside Circle::draw() method."); }}
public class Square implements Shape { @Override public void draw() { System.out.println("Inside Square::draw() method."); }}
步骤三:
public class ShapeFactory { //使用 getShape 方法获取形状类型的对象 public Shape getShape(String shapeType){ if(shapeType == null){ return null; } if(shapeType.equalsIgnoreCase("CIRCLE")){ return new Circle(); } else if(shapeType.equalsIgnoreCase("RECTANGLE")){ return new Rectangle(); } else if(shapeType.equalsIgnoreCase("SQUARE")){ return new Square(); } return null; }}
步骤四:
public class FactoryPatternDemo { public static void main(String[] args) { ShapeFactory shapeFactory = new ShapeFactory(); //获取 Circle 的对象,并调用它的 draw 方法 Shape shape1 = shapeFactory.getShape("CIRCLE"); //调用 Circle 的 draw 方法 shape1.draw(); //获取 Rectangle 的对象,并调用它的 draw 方法 Shape shape2 = shapeFactory.getShape("RECTANGLE"); //调用 Rectangle 的 draw 方法 shape2.draw(); //获取 Square 的对象,并调用它的 draw 方法 Shape shape3 = shapeFactory.getShape("SQUARE"); //调用 Square 的 draw 方法 shape3.draw(); }}
阅读全文
0 0
- 设计模式之工厂模式(二)之工厂方法模式
- 二 设计模式之工厂方法模式
- 设计模式之二:简单工厂模式
- 设计模式之工厂模式二
- 设计模式之二:工厂方法模式
- 设计模式之工厂模式 (二)
- java设计模式之二工厂模式
- 设计模式之二 ---------工厂模式
- 设计模式之二工厂方法模式
- 设计模式之二:工厂模式
- 设计模式之二:工厂方法模式
- 设计模式系列之二:工厂模式
- 设计模式之二:工厂方法模式
- 设计模式之工厂模式(二)
- 设计模式之二-工厂模式
- 设计模式之 工厂模式(二) 抽象工厂模式
- Java设计模式(二):工厂模式(Factory)之简单工厂
- Java设计模式(二):工厂模式(Factory)之工厂方法
- js调试工具Console命令详解
- 电商网站秒杀系统如何设计
- React Native 项目常用第三方组件 很常用
- Java基础第三章--面向对象编程
- api安全之ip访问限制
- 设计模式之工厂模式(二)
- 欢迎使用CSDN-markdown编辑器
- return,return true,return false三个的作用。
- Java 图片文字识别
- ANDROID中自定义属性格式详解
- 1060. 爱丁顿数(25) PAT
- C++动态规划算法之怪盗基德的滑翔翼
- VC获得本机网络连接状态
- 实战录|听“老司机”谈谈分布式集群高并发问题