zoukankan      html  css  js  c++  java
  • 简单工厂SimpleFactory

    简介(其实它不是模式)

    简单工厂模式(Simple Factory Pattern):又称为静态工厂方法(Static Factory Method)模式,它属于类创建型模式。在简单工厂模式中,可以根据参数的不同返回不同类的实例。简单工厂模式专门定义一个类来负责创建其他类的实例,被创建的实例通常都具有共同的父类。简单工厂模式的核心是工厂类,在没有工厂类之前,客户端一般会使用 new 关键字来直接创建对象,而在引入工厂类之后,客户端可以通过工厂类来创建对象,在简单工厂模式中,工厂类提供了一个静态工厂方法供客户端使用,根据所传入的参数不同可以创建不同的对象

    角色

    • 工厂(SimpleFactory)角色:工厂角色负责实现创建所有实例的内部逻辑。
    • 抽象产品(Car)角色:工厂方法模式所创建的对象的超类,也就是所有产品类的共同父类或共同拥有的接口。在实际的系统中,这个角色也常常使用抽象类实现。
    • 具体产品(Jeep、Bus)角色:这个角色实现了抽象(ExportFile)角色所声明的接口,工厂方法模式所创建的每一个对象都是某个具体产品角色的实例。

    类图

     

    源码

    public interface Car {
        public void produceCar();
    }

    吉普

    public class Jeep implements Car {
        public void produceCar() {
            System.out.println("生产吉普");
        }
    }

    巴士

    public class Bus implements Car {
        public void produceCar() {
            System.out.println("生产巴士");
        }
    }

    工厂

    public class SimpleFactory {
        public static Car getCarInstance(String name) {
            Car ret = null;
            if ("jeep".equals(name)) {
                return new Jeep();
            } else if ("bus".equals(name)) {
                return new Bus();
            } else {
                return ret;
            }
        }
    }

    测试&结果

    public class Main {
        public static void main(String[] args) {
            //简单工厂
            Car simpleJeep=SimpleFactory.getCarInstance("jeep");
            simpleJeep.produceCar();
            //结果 生产吉普
        }
    }

    JDK运用

    Java加密技术-获取不同加密算法的密钥生成器

    KeyGenerator keyGen=KeyGenerator.getInstance("DESede");

    Head First 设计模式(中文版)的示例:

    码云地址:https://gitee.com/manusas/FactoryDP

  • 相关阅读:
    (转)Inno Setup入门(十)——操作注册表
    (转)Inno Setup入门(九)——修改安装过程中的文字显示
    (转)Inno Setup入门(八)——有选择性的安装文件
    (转)Inno Setup入门(七)——提供安装语言选项
    (转)Inno Setup入门(六)——在程序目录下创建文件夹
    (转)Inno Setup入门(五)——添加readme文件
    (转)Inno Setup入门(四)——为程序创建桌面快捷方式
    什么是REST架构(转)
    【转】敏捷开发流程
    hibernate里createSQLQuery
  • 原文地址:https://www.cnblogs.com/manusas/p/7489721.html
Copyright © 2011-2022 走看看