Design Pattern Explained 读书笔记二——设计模式序言

时间:2023-02-02 13:04:29

设计模式的由来:

20 世纪 90 年代初,一些聪明的开发者偶然接触到 Alexander(Christopher Alexander 的建筑师) 有关模式的工作。他们非常想知道,在建筑学成立的理论,是否在软件设计中也适用。

● 软件中是否存在不断反复出现、能够以某种同样方式解决的问题?

● 是否可能用模式方法来设计软件,即先找出模式,然后依据这些模式

创建特定的解决方式?

GoF 自己并没有创造书中的模式,认识到这一点非常重要。

相反。他们仅仅是

将软件界已经存在的、反映了(针对各种详细问题的)优秀设计经验的模式识别出来。

模式的描写叙述应该包含 4 项:

● 模式的名称

● 模式的目的。即要解决的问题

● 实现方法

● 为了实现该模式必须考虑的限制和约束因素

更为详细的学习一个设计模式,应该考虑下面要点:

名称 :每一个模式都有惟一的用于标识的名称

意图 :模式的目的

问题: 模式要解决的问题

解决方式 : 模式如何为问题提供适合其所处环境的一个解决 方案

參与者和协作者: 模式所涉及的实体

效果: 使用模式的效果。研究模式中起作用的各种因素

实现 :模式的实现方式 注意:实现仅仅是模式的详细体现,而不能视为模式本身

一般性结构: 显示模式典型结构的标准图

$(function () {
$('pre.prettyprint code').each(function () {
var lines = $(this).text().split('\n').length;
var $numbering = $('

    ').addClass('pre-numbering').hide();
    $(this).addClass('has-numbering').parent().append($numbering);
    for (i = 1; i ').text(i));
    };
    $numbering.fadeIn(1700);
    });
    });

    Design Pattern Explained 读书笔记二——设计模式序言的更多相关文章

    1. 《你必须知道的.NET》读书笔记二:小OO有大原则

      此篇已收录至<你必须知道的.Net>读书笔记目录贴,点击访问该目录可以获取更多内容. 一.单一职责原则 (1)核心思想:一个类最好只做一件事,只有一个引起它变化的原因 (2)常用模式:Fa ...

    2. spring揭秘 读书笔记 二 BeanFactory的对象注册与依赖绑定

      本文是王福强所著<<spring揭秘>>一书的读书笔记 我们前面就说过,Spring的IoC容器时一个IoC Service Provider,而且IoC Service Pr ...

    3. ES6读书笔记&lpar;二&rpar;

      前言 前段时间整理了ES6的读书笔记:<ES6读书笔记(一)>,现在为第二篇,本篇内容包括: 一.数组扩展 二.对象扩展 三.函数扩展 四.Set和Map数据结构 五.Reflect 本文 ...

    4. spring揭秘 读书笔记 二 BeanFactory的对象注冊与依赖绑定

      本文是王福强所著<<spring揭秘>>一书的读书笔记 我们前面就说过,Spring的IoC容器时一个IoC Service Provider,并且IoC Service Pr ...

    5. 【记】《&period;net之美》之读书笔记&lpar;二&rpar; C&num;中的泛型

      前言 上一篇读书笔记,很多小伙伴说这本书很不错,所以趁着国庆假期,继续我的读书之旅,来跟随书中作者一起温习并掌握第二章的内容吧. 一.理解泛型 1.为什么要使用泛型?-----通过使用泛型,可以极大地 ...

    6. Mastering Web Application Development with AngularJS 读书笔记&lpar;二&rpar;

      第一章笔记 (二) 一.scopes的层级和事件系统(the eventing system) 在层级中管理的scopes可以被用做事件总线.AngularJS 允许我们去传播已经命名的事件用一种有效 ...

    7. how tomcat works 读书笔记&lpar;二&rpar;----------一个简单的servlet容器

      app1 (建议读者在看本章之前,先看how tomcat works 读书笔记(一)----------一个简单的web服务器 http://blog.csdn.net/dlf123321/arti ...

    8. java读书笔记二

      这是我的一些读书笔记: 我研究了一下面向对象: 面向对象符合人类看待事物的一般规律,对象的方法的实现细节是包装的,只有对象方法的实现者了解细节 我觉得面向过程是由过程.步骤.函数组成,过程是核心,面向 ...

    9. 《javascript设计模式》读书笔记二(封装和隐藏信息)

      1.为什么要封装和信息隐藏 做过编程的朋友们知道"耦合"这个词.事实上封装的效果就是为了解耦,让类和类之间没有太多的联系,防止某一天改动某一类的时候,产生"多米骨诺牌效应 ...

    随机推荐

    1. IOS URL 编码和解码

      1.url编码 ios中http请求遇到汉字的时候,需要转化成UTF-8,用到的方法是: NSString * encodingString = [urlString stringByAddingPe ...

    2. HDU 5442 后缀自动机&plus;kmp

      题目大意: 给定一个字符串,可理解成环,然后选定一位置,逆时针或顺时针走一遍,希望得到字典序最大,如果同样大,希望找到起始位置最小的,如果还相同,就默认顺时针 比赛一直因为处理最小位置出错,一结束就想 ...

    3. 教你50招提升ASP&period;NET性能(八):检查你使用了什么客户端脚本

      (14)Review what client scripts you are using 招数14: 检查你使用了什么客户端脚本 Out of the box, many ASP.NET projec ...

    4. DAX&sol;PowerBI系列 - 写在前面

      今天讲的主角是: 不过,先上一个图--2017 Gartner商业智能和数据分析魔力象限 DAX关注这个玩意儿有好一段时间了,刚开始的时候(2014年?)是从Excel里面认识的.2014年当时公司用 ...

    5. 【JavaScript 】for 循环进化史

      ECMAScript 6已经逐渐普及,经过二十多年的改进,很多功能也有了更成熟的语句,比如 for 循环 这篇博客将介绍一下从最初的 for 循环,到 ES6 的 for-of 等四种遍历方法 先定义 ...

    6. 图的存储结构的实现&lpar;C&sol;C&plus;&plus;实现&rpar;

      存档: #include <stdio.h> #include <stdlib.h> #define maxv 10 #define max 10 typedef char e ...

    7. xml字符串转为XmlDocument

      string xml = "<xml><logistics_express_get_respose><express_detail><company ...

    8. Java父类对象调用子类实体:方法重写与动态调用

      众所周知Java的handle和C++的ponter而不是object对应,我们很熟悉C++的父类pointer调用子类实体的例子,那么对于Java的handle是不是也可以这样呢? 这里我先给一个例 ...

    9. 深度学习环境搭建(ubuntu16&period;04&plus;Titan Xp安装显卡驱动&plus;Cuda9&period;0&plus;cudnn&plus;其他软件)

      一.硬件环境 ubuntu 16.04LTS + windows10 双系统 NVIDIA TiTan XP 显卡(12G) 二.软件环境 搜狗输入法 下载地址 显卡驱动:LINUX X64 (AMD ...

    10. win32编程简介

      win32编程简介 复习Win32整理下知识. 为什么学习win32? 我们要编写windos程序.都离不开API. 也就是我们所说的win32程序. 所以学好win32是你能不能再windows下编 ...