zoukankan      html  css  js  c++  java
  • java 设计模式 ---- 工场模式

    官方描述: 定义一个创建对象的接口,让其子类自己决定实例化哪一个工厂类

    土话描述: 先把所有的情况设先计出来, 后面根据条件实现哪种情况

      比如我想找女朋友, 喜欢的类型可能是: 屁股大的, 胸挺的, 脸蛋园的, 同事里面这几种类型都有, 后面我妈说找个屁股大的, 那我就选了小方.....

    创建一个接口

    public interface Shape {
       void draw();
    }

    实例类: 圆

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

    实例类: 矩形

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

    创建工场

      由工场来创建具体的图形

    public class ShapeFactory {
        
       //使用 createShape 方法获取形状类型的对象
       public Shape createShape(String shapeType){
          if(shapeType == null){
             return null;
          }        
          if(shapeType.equalsIgnoreCase("CIRCLE")){
             return new Circle();
          } 
        if(shapeType.equalsIgnoreCase("RECTANGLE")){ return new Rectangle(); } 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();
     
       }
    }
  • 相关阅读:
    Nucleus 的网络部分
    VS2005中TextBox的ReadOnly属性(转贴)
    VS2005中TextBox的ReadOnly属性导致的问题
    外部中断
    Linux操作系统文件链接问题
    IIS 服务不能自动启动
    转贴:[C++]static用法
    串口测试的一些体会
    字符串的两种声明方式
    Tornado 2.2 中vxsim出问题的解决方法
  • 原文地址:https://www.cnblogs.com/huanggy/p/9873594.html
Copyright © 2011-2022 走看看