资讯专栏INFORMATION COLUMN

Design Pattern - Factory Pattern(译)

zhangwang / 881人阅读

摘要:原文链接译者个人翻译,水平有限,如有错误欢迎指出,谢谢设计模式工厂模式工厂模式是中最常用的设计模式之一。这种类型的设计模式属于创建型模式下,创建一个对象最好的方式之一。调用圆的方法获得矩形的一个对象并调用它的方法。

原文链接
译者:smallclover
个人翻译,水平有限,如有错误欢迎指出,谢谢!

设计模式-工厂模式

工厂模式是Java中最常用的设计模式之一。这种类型的设计模式属于创建型模式下,创建一个对象最好的方式之一。
在工厂模式中,我们不会把创建对象的逻辑暴露给客户端,同时通过使用通用接口来创建对象引用。

实现

我们将创建一个Shape接口以及实现这个Shape接口的类。接下来一步,我们会定义一个工厂类ShapeFactory
FactoryPatternDemo,我们的demo类将通过图形工厂来获得图形对象。通过传送信息(圆、矩形、正方形)到图形工厂来获得我们所需要的类型的对象。

第一步

创建一个接口
Shape.java

public interface Shape {
   void draw();
}
第二步

创建具体的实现类来实现相同的接口(Shape interface)。
Rectangle.java

public class Rectangle implements Shape {

   @Override
   public void draw() {
      System.out.println("Inside Rectangle::draw() method.");
   }
}
Square.java
public class Square implements Shape {

   @Override
   public void draw() {
      System.out.println("Inside Square::draw() method.");
   }
}
Circle.java
public class Circle implements Shape {

   @Override
   public void draw() {
      System.out.println("Inside Circle::draw() method.");
   }
}
第三步

创建一个工厂基于传送的信息生成具体类的对象。
ShapeFactory.java

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;
   }
}
第四步

使用工厂通过传送过来的类型信息获得具体类的对象。
FactoryPatternDemo.java

public class FactoryPatternDemo {

   public static void main(String[] args) {
      ShapeFactory shapeFactory = new ShapeFactory();

      //获得圆的一个对象并调用它的draw方法。
      Shape shape1 = shapeFactory.getShape("CIRCLE");

      //调用圆的draw方法
      shape1.draw();

      //获得矩形的一个对象并调用它的draw方法。
      Shape shape2 = shapeFactory.getShape("RECTANGLE");

      //调用矩形的draw方法
      shape2.draw();

      //获得正方形的一个对象并调用它的draw方法。
      Shape shape3 = shapeFactory.getShape("SQUARE");

      ////调用的draw方法
      shape3.draw();
   }
}
第五步

校验输出。

Inside Circle::draw() method.
Inside Rectangle::draw() method.
Inside Square::draw() method.

文章版权归作者所有,未经允许请勿转载,若此文章存在违规行为,您可以联系管理员删除。

转载请注明本文地址:https://www.ucloud.cn/yun/66199.html

相关文章

  • Design Pattern - Abstract Factory Pattern

    摘要:原文链接译者个人翻译,水平有限,如有错误欢迎指出,谢谢设计模式抽象工厂模式抽象工厂的核心是一个超级工厂,而这个工厂能创建其他的工厂。在抽象工厂模式中,一个接口负责创建抽象与一个工厂相关的对象,不需要显示的指定它们的类。 原文链接译者:smallclover个人翻译,水平有限,如有错误欢迎指出,谢谢! 设计模式-抽象工厂模式 抽象工厂的核心是一个超级工厂,而这个工厂能创建其他的工厂。所以...

    王笑朝 评论0 收藏0
  • Design Pattern - Singleton Pattern

    摘要:创建的对象使构造函数私有,外界将无法实例化该类获得唯一可用的对象第二步从单例类获得唯一的对象。非法构造编译错误,构造函数不可见。获得唯一可用对象展示信息第三步校验输出。 原文链接译者:smallclover个人翻译,水平有限,如有错误欢迎指出,谢谢! 设计模式-单例模式 单例模式是Java中最简单的设计模式之一。这种类型的设计模式,是创建型模式下创建对象的最好方式之一。这个模式涉及到一...

    yck 评论0 收藏0
  • Design Pattern – Overview(

    摘要:设计模式是软件开发人员在整个软件开发的过程中面临普遍问题的解决方案。这些作者被统称为四人帮。根据这些作者的观念,设计模式主要是基于一下几种面向对象的设计原则。例如,单例模式表示使用单一对象。我们还将讨论另外一个类别的设计模式。 原文链接译者:smallclover个人翻译,水平有限,如有错误欢迎指出,谢谢! 设计模式-概述 设计模式体现了经验丰富的面向对象软件开发人员的最佳实践。设计模...

    WilsonLiu95 评论0 收藏0
  • 通俗易懂的设计模式

    摘要:面向对象设计模式通常以类别或对象来描述其中的关系和相互作用,但不涉及用来完成应用程序的特定类别或对象。里氏代换原则里氏代换原则是面向对象设计的基本原则之一。 通俗易懂的设计模式 零、使用 1、安装 2、测试 一、什么是设计模式 二、设计模式的类型 三、设计模式的六大原则 四、UML类图 1、看懂UML类图 2、解释 五、资料 前言:花了一些时间再次熟悉了一遍...

    wuyangnju 评论0 收藏0
  • Design Patterns-Command Pattern

    摘要:调用者对象会寻找合适的并且能够处理该命令的对象,然后把该命令传递给相应的对象处理。紧接着创建一个类代表请求。创建具体的命令类和实现接口,它们将会作为具体的命令被处理。代表调用者,它能获得并且发出命令。 原文连接译者 smallclover希望对大家有所帮助。谢谢!(●◡●) 设计模式-命令模式 命令模式是一种数据驱动的设计模式,属于行为型模式这一类。命令模式会将一个请求包装成一个对象并...

    ACb0y 评论0 收藏0

发表评论

0条评论

zhangwang

|高级讲师

TA的文章

阅读更多
最新活动
阅读需要支付1元查看
<