zoukankan      html  css  js  c++  java
  • 详列JDK中的设计模式(一)创建型

    1.单例模式(Singleton):只存在一个实例而对外提供公开的访问点

      (1)NumnerFormat只有一个实例

      (2)Runtime(JVM运行于系统之上,由Runtime可以获取系统的信息):而Runtime是单例的,饿汉式

    0.静态工厂(Factory):根据传入方法的参数来构造实例,对外隐藏创建实例的细节

      (静态工厂不属于23种设计模式,但此处列举以便理解)

      (1)Integer.valueOf() Integer类中根据普通类型的值来创建包装类Integer

      (2)Class.forName() 反射中根据全限定类名来创建实例

    2.工厂方法模式(Factory Method):抽象工厂,抽象产品实现松耦合,实现类决定产出什么产品

      Collection.iterator 集合Collection实现了Iteatorable接口,其内部有一个内部迭代器类,可通过iterator()方法获取到迭代器(这一方法正是那个工厂方法)

      集合Collection代表工厂,迭代器Iterator代表产品

      Collection代表抽象工厂接口,生产产品的方法为Iterator(),返回抽象的产品接口 ,而具体的集合类实现此接口(具体的List,具体的Set等实体类),生产的Iterator是产品接口的实现类具体Iterator生产什么具体的产品由实现什么具体工厂

     3.抽象工厂模式(Abstract Factory):抽象工厂接口生产的产品有多种

    (1)java.sql包中Connection创建Statement

     JDBC的使用中,加载驱动后使用DriverManager.gerConnection获取的是Connection的实例,Connection是连接接口,而后由Connection创建用以执行不同sql语句的Statement,预编译PreparedStatement和用以执行存储过程的CallableStatement.这时Connection相当于抽象工厂接口,可生产多种抽象产品。

      Connection就成为了抽象工厂,而Statement,PreparedStatement,CallableStatemen是多种抽象产品,抽象工厂可生产多种抽象产品,而对应的实例工厂MysqlCollectionImpl生产实力产品Impl

     4.建造者模式(Builder):构造一个实例需要大量的工作,所以将构建逻辑提到了单独的类中

      (1)解析XML时构建总的document需要遍历所有节点,包括注释文本等  ,建造过程繁琐,就就将它分离出来

    5.原型模式(Prototype):克隆,深拷贝,浅拷贝

      (1)Object.clone / Cloneable

      

    参考:https://blog.csdn.net/qq_38311489/article/details/89439835

  • 相关阅读:
    4 Apr 18 软件开发目录 logging模块的使用 序列化(Json, Pickle) os模块
    3 Apr 18 内置函数 列表生成式与生成器表达式 模块的使用之import 模块的使用之from…import…
    2 Apr 18 三元表达式 函数递归 匿名函数 内置函数
    30 Mar 18 迭代器 生成器 面向过程的编程
    29 Mar 18 函数 有参、无参装饰器
    28 Mar 18 函数
    27 Mar 18 函数的参数
    26 Mar 18 函数介绍
    23 Mar 18 文件处理
    22 Mar 18 补充数据类型+字符编码+文件处理
  • 原文地址:https://www.cnblogs.com/ying-dong/p/12150658.html
Copyright © 2011-2022 走看看