zoukankan      html  css  js  c++  java
  • 设计模式全面理解一:创建型

    一、设计模式分类

    最近于各种场合之中,深感设计模式之重要。这不仅仅对我们自己设计并写出高质量代码大有裨益,同时对我们理解一些框架源码亦有显而易见的好处。

    我们常见的设计模式就是1994由Gof(四个软件工程学者的组合)归纳出来的23种设计模式(Design Pattern)。根据目的分可分为三类:Creational、Structural、Behavioral;根据范围,可分为类模式和对象模式。

     二、创建型模式的优点

    创建型模式将对象的创建和对象的使用过程分离,降低了系统的耦合度,使得软件系统更易于扩展。

    三、常见的几种创建型模式

    1. 简单工厂

    简单工厂不属于Gof23种设计模式中的一员,但是这并不妨碍它具有很好的入门效果和借鉴意义。

    简单工厂主要分为三部分:抽象产品类(接口)、具体产品类、具体产品工厂类;

    抽象产品类(接口)中定义了这类产品通用的抽象方法,由具体产品类来实现具体业务逻辑,每增加一个产品需要新增一个具体产品类;

    具体产品工厂类中有一个static类型的获取具体产品类的方法,只需要传入实际的参数就能返回一个具体产品类。

    缺点:所有产品在一个工厂类里边,每次增加产品都需要修改工厂类,不符合开闭原则

    2. 工厂模式

    工厂模式组成部分:抽象工厂类、抽象产品类、具体工厂类、具体产品类

    应用1:集合类中Collection接口就是这样的抽象工厂类,Iterator是抽象产品类

    具体产品类(这里作为具体工厂类ArrayList的内部类):

     具体工厂类就是ArrayList

     应用2:Connection、Statement、Resultset

    3. 抽象工厂模式

    有产品族的概念,产品族易于增加,只需增加新的产品接口及其实现类就行,不会修改到原来代码;

    原先的产品等级结构中新增产品比较麻烦,需要改动已有的接口;

    这种现象称为开闭原则的偏向。

    四、设计模式六大原则

  • 相关阅读:
    spring Bean的生命周期
    java合并两个有序数组的算法(抛砖引玉)
    Spring 中解析 URL参数的几种方式
    联合索引和单个索引使用注意事项
    Java中同一个类中不同的synchronized方法是否可以并发执行?
    简析JVM GC的根搜索算法
    spring rest 请求怎样添加Basic Auth请求頭
    spring boot 排除个别配置类的代码
    使用非对称算法RSA实现加解密和使用签名算法SHA1WithRSA、MD5withRSA生成签名以及验签
    Redis中如何发现并优化big key?
  • 原文地址:https://www.cnblogs.com/jdbc2nju/p/11561259.html
Copyright © 2011-2022 走看看