• 快速理解设计模式之创建型设计模式(上)


    导语:本文将教大家一个快速理解设计模式的方法,以及如何自己通过日常生活来体会设计模式。

    前言:

    虽然这个方法有让大家为了用设计模式而学习设计模式的嫌疑,或者不能让你完全意义上的理解设计模式,但是我认为先要学会用然后在把它变成自己的东西吧,怪咖们也是从这个过程走出来的,除了最早提出设计模式的J。好了废话少说,直接上内容。

    内容:

    我们设计高楼、桥梁都会先用前人积累的知识技术画好图纸,然后建设,所谓站在巨人的肩膀上前进才会有进步。设计模式也是一样,我们先要UML建模,然后根据模型编程,OK过程很简单吧。如果UML类中的一些继承、组合、聚合、关联关系不太清楚可以去网上查一下。我要教大家的就是用前辈设计好的各个设计模式的UML模型,编程。这样即使忘了某个设计模式的意义,下次直接看UML模型就可以了,哈哈。

    1.创建型设计模式:

    说到创建模式那就是创建对象了,是不是和工厂生产产品一样呢?YES。所以简单工厂、工厂方法、抽象工产就这么得名了。其实工厂方法和抽象工厂就可以理解为是简单工厂的改进,我们设计桥梁也会对图纸改进吧。

    1.1简单工厂:

       1.1.2简单工厂建模

         想想,如果我们要对一个工厂的生产进行建模,应该怎么设计呢?简单点就该这么画吧,(我用类似UML模型来描述)。

     

     

    1.1.3 伪代码

     

     

    总结:上述就是简单工厂的模型和代码框架了,如果一时忘了简单工厂可以按照上面的思路快速恢复记忆,哇,其实这个思想我们在生活中到处都是吧,所以只要你能想到和创建、生产相关的都可以用简单工厂来实现。

    1.2工厂方法模式

         简单工厂思路是简单,正常人都是这么想的。可是我们毕竟是编程的,伟大的程序员!看到简单工厂中表达依赖关系的这块代码你是否会皱眉呢?Bad taste!伟大的Programmer会告诉你,代码中不要出现switch语句,你会问whySorrymaybe you can google...

    所以我们要把代码进行重构,希望能去掉switch。如果我们把每个产品的创建都放在各自的工厂中,就不需要判断了吧,试试建模:

     

    好啦,我们现在来写一下伪代码:

     

     

    总结:上述是对简单工厂的改进,就是我们熟知的工厂方法模式,记住了它的由来,那么这个模式就很好理解啦。

    1.3 抽象工厂设计模式

    前面我们讲解工厂就只考虑了所有的产品都是由一个工厂来生产,想想这个工厂的老板是不是赚疯了呢?现在竞争这么大,你这个赚钱当然会有很多其它的厂家也会来生产你的产品,太不厚道了这些人,哈哈我们建模试试呢。

     

    上图中工厂和竞争工厂同时创建产品A,这个在代码中改如何表达呢?怎么知道产品A是哪个工厂创建的呢?现实生活中,一个产品肯定有厂家说明的,所以我们对上述模型稍加改进一下,给每个产品加上商家说明。

     

    哈哈,看到上面的模型是不是非常激动,好啦,我们现在来写写代码:

     

    上述就是抽象工厂的UML模型和代码逻辑了,通过推理一步步得到该设计模式,相信不会这么容易忘记吧。

    注:本文为作者原创,如需转载请注明出处,谢谢~

                                                                                 

  • 相关阅读:
    云原生网关 Kong 和Kong 管理UI 的完全安装攻略
    微服务最强开源流量网关Kong
    如何在java中判断一个字符串是否是数字
    设计模式之责任链模式讲解
    我的第一个react native
    封装缓动动画3
    封装缓动动画2
    封装缓动动画1
    获取用户选中的文字内容
    窗口事件onresize
  • 原文地址:https://www.cnblogs.com/programmerblog/p/designPattern.html
Copyright © 2020-2023  润新知