美文网首页
软件工程设计模式

软件工程设计模式

作者: 那只梦魇说 | 来源:发表于2019-03-12 22:14 被阅读0次

GTD & GOF

荒芜的学生时代末期和找工作阶段,对oop和design patterns做了背书式学习。看了YouTube上一位光头大胡子前辈对oop的生动阐释,也强行输入了一堆GOF设计模式里的名词。基本做到了看过、忘了的境界。

在一堆乱草中工作一段时间后,迷乱了方向。其一对职业方向的不确定性抱有很大的疑虑,技术无长进业务不够格,高不成低不就的尴尬,滋生很多负面情绪,归其原因就是眼高手低,执行交付结果差强人意,没有可以作为信心支撑的瓷器活。

摆脱困境的方式唯有动起来。18年底做了GTD的学习,审视自己的工作生活习惯和模式。对职业方向的不确定性,也唯有捧读指路明灯。19年2月至3月初过完一遍GOF设计模式,敲下键盘回顾下。


复用

书名副标题点名复用,这也是软件设计的重头戏,化繁为简,简到可复用(懒)。

实现复用的基本技巧:

继承:编译时刻静态定义的白箱复用。同根同族,技能世代传承,还可以二次拓展,技能树满满的。

对象组合:运行时刻获取其他对象引用的黑箱复用。异族派来的大使,可以协助处理很多事务,办事循规蹈矩,诡异莫测。

委托:也属于组合,只是把处理请求直接丢给代理者(delegate). “隔壁老王,帮忙看下孩子。” 老王带孩子很开心。

参数化类型:模板。抄作业不改名字,这事从来没干过。


创建型模式

该在什么场景实例化?实例化哪一个?实例化多少个?全局一个还是实时创建?创建型即把实例化的过程抽象,把do和what分隔开,把实例化的动作隐藏起来,呈现出一个统一入口。

Abstract Factory

场景:Y流水线作业出来一个小黄,O流水线作业出来一个小橙,老板想要混合颜色的产品,,怎么弄?

方案1:新建一条七彩流水线

方案2:借用Y和O的流水线(假设产能足够),复用现有技术和配色

Builder

简化复杂对象的创建过程,例如多参数,参数必要和非必要混合甚至继承关系中的构造。

把复杂的constructor方法用builder的方式,一步一步的配置属性在最后build得到目标实例。

Factory

Prototype

Singleton


结构型模式

如何组合类和对象已获得更大的结构

Adapter

适配:将两个无关对象通过组合的方式,实现接口的兼容。

Bridge

Composite

Decorator

继承扩展功能简单直接,但是引入过多分支会爆炸,俗称类爆炸,这时候可以用组合的方式来解决。即提倡的组合优于继承。

decorator又名wrapper 套壳。譬如,天冷了加件长袖,不够在来个外套,还冷的话加个羽绒服,如果还冷就买暖气吧。寒冷中涩涩发抖的你是对象实体,在加衣服的过程中不涉及实质改变,只有外观的变化,以达到保暖的功能。

Facade

Fly Weight

Proxy


行为模式

Chain of Responsibility

Command

Interpreter

Iterator

Mediator

Memento

Observer

State

对象状态的变化会引起对象行为的改变,在几个状态之间切换。变化的状态即可以抽象出一层,实现对象和抽象状态的组合。实例状态在引到对象在状态之间切换。

Strategy

处理请求时有很多并行的方式,算法或策略,策略模式即把这些类似的行为(看做一个策略集合)抽离出来,使集合内部互不干扰,对外以接口的形式提供策略。而原有请求只需保有对这个策略集合的引用,根据情况使用特定策略。

Template Method

Visitor


Ref:

https://refactoring.guru/design-patterns/what-is-pattern

- https://youtu.be/SS-9y0H3Si8

相关文章

  • 设计模式概述

    概念:设计模式(Design Pattern)---人们在面对同类型软件工程设计问题所总结的经验。模式不是代码,而...

  • 软件工程设计模式

    GTD & GOF 荒芜的学生时代末期和找工作阶段,对oop和design patterns做了背书式学习。看了Y...

  • 设计模式讲解-第1篇初识设计模式

    设计模式讲解-初识设计模式 设计模式是什么? 设计模式是人们在面对同类型软件工程设计问题所总结出的一些有用的经验(...

  • 图解Java设计模式之单例设计模式

    @TOC 设计模式介绍 1)设计模式是程序员在面对同类软件工程设计问题所总结出来的有用的经验,模式不是代码,而是某...

  • Java-设计模式-策略模式

    设计模式入门 设计模式是人们在面对同类型软件工程设计问题所总结出来的一些有用的经验。模式不是代码,而是某类问题的通...

  • 设计模式简介

    1、 设计模式是人们在面对同类软件工程设计问题所总结出来的一些有用经验。模式不是代码,而是某类问题的通用设计解决方...

  • Java 设计模式(1) —— 策略模式

    设计模式是人们在面对同类型软件工程设计问题所总结出的一些有用的经验。模式不是代码,而是某类问题的通用设计解决方案。...

  • 设计模式介绍

    设计模式是程序员在面对同类软件工程设计问题所总结出来的有用的经验,模式不是代码,而是某类问题的通用解决方案,设计模...

  • 学习各种工程软件后的思索

    大部分的工程设计软件,开发的使用思维都是一个模式,即主程序调用子程序的思路。zemax,matlab,labvie...

  • 设计模式应该这样学

    以下文章来源于公众号“程序员求职之路” 设计模式是人们在面对同类型软件工程设计问题所总结出的一些有用的经验。 模式...

网友评论

      本文标题:软件工程设计模式

      本文链接:https://www.haomeiwen.com/subject/xmpwyqtx.html