设计模式的组成

单个设计模式
设计模式的名称
为每个设计模式取名,好记易懂
环境问题
描述什么场景下,出现什么样的特定问题
解决方案
描述如何解决这个问题
效果
描述模式应用的效果,以及可能带来的问题,或者使用中需要权衡的问题

上面是对单个设计模式来说的,在java领域中,对于设计模式的组成还有另外一种分发,就是按照设计模式所在的技术领域来划分,

大致分成:
java设计模式-GoF的《设计模式——可复用面向对象软件的基础》
关注细节设计
javaee设计模式-SUN的《J2EE核心设计模式》
层级更高,注重架构设计,组合成架构
EJB设计模式
实时系统设计模式
多线程设计模式
架构模式

java设计模式的分类

创建型模式:抽象了对象实例化的过程,用来帮助创建对象实例
结构型模式:描述如何组合类和对象已获得更大的结构【类内的关系起来】
行为型模式:描述算法和对象间职责的分配【为了类内设计更合理】

设计模式和面向对象设计原则
原则从思想层面上给我们指出了面向对象分析设计的正确方向,我们应该在进行面向对象分析设计时尽量遵守这些准则

如果说原则是思想上的指导,那么模式就是实现手段。因此,设计模式也应该遵守这些元怎,换句话说,设计模式就是设计原则的一字儿具体体现

原则的具体实现不止设计模式一种。

一种设计模式,体现的设计原则往往不是单一的,而是几种原则融合在一起的

设计原则只是一种指导思想,事实上开发中很少完全遵守,设计是一种不断权衡的工作,有时候,我们还要考虑其他方面4

设计模式和UML

UML是面向对象分析与设计的一种标准
这两者其实没有关系

设计模式和设计工具

设计模式和重构

设计模式是重构的目标,重构是达到目标的手段之一

重构【辅助手段】不排斥提前设计,重构并不需要设计,不赞成过度设计,但是支持适度设计

合理的提前设计【主要手段】+重构来不断的改进设计=>趋近于优秀的系统

研磨设计模式-设计模式的基础-设计模式有什么相关推荐

  1. php注册树模式,php基础设计模式大全(注册树模式、工厂模式、单列模式)

    废话不多说了,先给大家介绍注册树模式然后介绍工厂模式最后给大家介绍单列模式,本文写的很详细,一起来学习吧. php注册树模式 什么是注册树模式? 注册树模式当然也叫注册模式,注册器模式.之所以我在这里 ...

  2. 设计模式-UML关系基础

    设计模式-UML关系基础 UML关系基础 类之间的关系 泛化 类在继承中表现为泛化和实现. 继承关系为is-a的关系,两个对象之间用is-a表示为继承关系. eg,自行车是车,猫是动物. 泛化关系用空 ...

  3. 二、设计模式-必要的基础知识—旅行前的准备 #和设计模式一起旅行#

    必要的基础知识-旅行前的准备 工欲善其事,必先利其器.--<论语> 要开始一场旅行,准备的工作肯定不能少,不能太任性,一场说走就走的旅行,也需要基础条件的,那么本次就做做一些旅行之前的准备 ...

  4. python算法基础设计模式,python常见的设计模式

    Python有设计模式么 Python设计模式主要分为三大类:创建型模式.结构型模式.行为型模式;三 大类中又被细分为23种设计模式,以下这几种是最常见的. 单例模式:是一种常用的软件设计模式,该模式 ...

  5. 设计模式学习1:设计模式简述和设计模式原则

    设计模式简述 什么是设计模式? 软件工程中,设计模式(design pattern)是对软件设计中普遍存在(反复出现)的各种问题,所提出的解决方案. 设计模式的目的: 代码高可用(相同作用的代码能重复 ...

  6. 精通python设计模式-浅谈Python设计模式 - 原型模式

    声明,本系列文章主要参考<精通Python设计模式>一书,并且参考一些资料,结合自己的一些看法来总结而来. 在<精通Python设计模式>中把设计模式分为三种类型: 创建型模式 ...

  7. 《设计模式详解》设计模式概述、UML

    <设计模式详解> 1.设计模式概述 1.1 软件设计模式的产生背景 1.2 软件设计模式的概念 1.3 学习设计模式的必要性 1.4 设计模式分类 2.UML 2.1 类图概述 2.2 类 ...

  8. 设计模式(一)设计模式的分类与区别

    文章目录 一.设计模式的六大原则 1.1 开闭原则(总原则) 1.2 里氏替换原则 1.3 依赖倒置原则 1.4 单一职责原则 1.5 接口隔离原则 1.6 迪米特法则 1.7 合成复用原则 二.设计 ...

  9. 从零开始学习Java设计模式 | 设计模式入门篇:设计模式概述

    在上一讲中,明确了设计模式这门课所要学习的内容之后,接下来,我们就得开始正式步入设计模式这门课的学习中了,当然,我也祝大家能在设计模式这门课程中能够学到很多东西,也不枉我这一片苦心了! 软件设计模式的 ...

  10. 大话php设计模式视频,大话PHP设计模式【1】 – 魔术师之路

    PSR-0规范命名空间必须与绝对路径一致 类名首字母必须大写 除了入口文件外,其他'.php'文件必须只有一个类 PHP链式操作必须在每个function里return $this; 三种基础设计模式 ...

最新文章

  1. react取消所有请求_React Hooks中取消HTTP请求来避免内存泄漏
  2. SICP学习笔记(P27-P28)
  3. 力扣【每日温度】leetcode-739.每日温度:单调栈解法
  4. 计划策略-25-具有配置的订货型生产
  5. HDU4279(2012年天津网络赛---数论分析题)
  6. [长流支流]的专栏--《金质打印通》、《WebMIS.NET快速开发平台》,MIS/ERP开发利器...
  7. 如何在xp中添加打印机
  8. AI医疗智能问答算法赛,超二十万大奖等你来拿
  9. Windows2008r2如何关闭防火墙
  10. Python——format()/str.format()函数
  11. spring aop示例_具有AOP事务管理的Spring ORM示例
  12. Linux环境下NodeJS和MongoDB的安装配置
  13. HeadFirst设计模式之命令模式
  14. archlinux安装mysql_在Arch Linux中安装MySQL
  15. 阿里云云计算 13 OSS的优势和使用场景
  16. Vulkan-NCNN 编译
  17. Yii路由之LimeSurvey去掉烦人的/index.php/*
  18. matlab对信号加噪代码,Matlab给信号加噪声
  19. 计算机c盘能格式化吗,c盘可以直接格式化吗?C盘怎么格式化?
  20. pyqt创建透明窗体

热门文章

  1. 手把手教你使用Python做数据分析
  2. sqlyog和mysql一样么_navicat和sqlyog的区别
  3. 省市三级联动(数据库)
  4. 麦咭萌app送智伴机器人_国内儿童陪伴机器人品牌盘点
  5. openjdk java字体库_OpenJDK8编译后遇到字体问题
  6. 白话空间统计之二十五:空间权重矩阵(三)解构空间权重矩阵
  7. U盘的基础知识介绍量产
  8. vue中使用echarts实现中国地图
  9. 惠普136a芯片清零_怎么把惠普打印机芯片清零
  10. 御剑江湖一键端mysql_御剑江湖一键端漏洞,可导致数据库被任意修改