连载01:软件体系设计新方向:数学抽象、设计模式、系统架构与方案设计(简化版)(袁晓河著)
件设计公理化
软件设计公理化
现在是一个知识过剩的时代,培养独立思考的能力远比盲目看书更重要。 ---来自网络名言
如今设计模式就像蝗虫一样铺天盖地,任何一位时下的“大牛”都会捣腾一大堆设计模式的调调,但“灾难深重”的我们,却天天把眉毛和胡子愁在一起。我常常被迷惑,被鼓动,但是却难于深入理解什么是设计模式。设计模式是什么?是抽象化的精粹,还是设计的哲学。也许是被糊弄久了,也许是在某天,也许是更长的时间里,当我苦苦思索的时候,我猛然发现,哈!为什么我不能走实证的道路,不去想那虚无缥缈的抽象意义,而是先从设计模式的模样开始分析,就像金庸老先生的《侠客行》中的石破天,别人都在忙活着分析诗句和注解,他由于不识字,就只能看图玩。看着、看着就入了道,最后功力大增,练就了一身的绝学。虽然我无法达到身怀绝学,但是从结构的角度分析设计模式,的确让人醍醐灌顶。所以也希望将我的经验与所有“有缘人”进行分享。
伤不起的设计模式
在过去那些汗牛充栋的设计模式书籍文章中,大多都喜欢从意图和动机开始入手,然后再告诉你,这里有一个挺牛的方法,这个方法就是xxx设计模式,然后再如清风拂面一般的教导大家,这个设计模式有什么好处,为什么牛的一塌糊涂,但是又要注意,不要玩火过度,“罂粟少量是药,多了就是毒品”,然后可以兜售到好多好多地方,可谓是娓娓道来,滴水不漏。但是,还是但是,当我狂乱惊讶过后,我怎么也无法留下深刻的印象,而且还常常把这些所谓的“招式”名堂搞混,虽然有长辈谆谆教导下才能澄清的了“马和骡子”的区别,然而,不过依然被归于了“伪牛人”一列,谈谈设计模式可以,但是要实施就漏了马脚。
后来想想原因,主要是GOF(四人帮)的那本葵花宝典式之《设计模式》太经典了,经典到连程序猿菜鸟都知道。此书可谓开天辟地,把不该告诉你的都告诉你了,都快20年了,还这样有嚼劲。当后面铺天盖地的设计模式运应而生以后,有设计模式也有反设计模式,有事实有依据,把设计模式推向高潮。
在《设计模式》中,作者们通过大量的实践中的众多的经验进行统一总结、分析以及验证并形成了创建型、结构型、行为型等23个基本的设计模式,并在书中给出了意图、适用性以及实例等。后来在行业的不断发展下,总结出更多让人眼花缭乱的设计模式以及架构模式等。总之,这些手法皆属同一门派,采用的思维方式大抵是一致的。
但是,我感觉这里的确缺少了很多东西,按照西方人的思维习惯,应该是实证更浓厚一些,是喜欢从分析入手的,任何理论都先要从公理开始,然后步步推导。但是设计模式从叫响到现在更接近东方人的思维方式,那就是从经验而来,从经验而来,先给出这个现象,然后再从我们的已有经验中去找寻答案,所谓设计没有好坏之分,只有美丑之分。所以,设计模式被称为不是发明,而是发现设计模式。这点甚好,因为我本东方人,这样的思维方式很容易就习惯了,多爽的事!但是,还是但是,这只是一只脚在走路。如果我们只能从需求和经验而来的“自上而下”的方式,一定需要一个“自下而上”的方式进行补充,这种方式就是我们需要暂时脱离这些模糊的经验,先拆开这些设计模式进行分析。苟且让我从我非擅长的“公理化”开始进行分拆,抛弃一切具体含义,从公理化的道路去看看,去尝试尝试。
连载01:软件体系设计新方向:数学抽象、设计模式、系统架构与方案设计(简化版)(袁晓河著)相关推荐
- 连载12:软件体系设计新方向:数学抽象、设计模式、系统架构与方案设计(简化版)(袁晓河著)...
信息熵观点 针对软件设计来说,我们可以将所有的设计通过结构化来表达,于是我们的所有的设计信息都可以表达成结构熵的处理.那么如果系统的结构熵越大,系统就越不稳定,系统的有序化就越小. 那么是否结构化就表 ...
- 连载32:软件体系设计新方向:数学抽象、设计模式、系统架构与方案设计(简化版)(袁晓河著)
线性化 其实本章节的设置就显得有些为难,按照常理需要大家针对后面的"线性化机制"一章节进行充分理解后,我们才能更好的进行线性化的数学抽象.然而又为了照顾统一在数学抽象的章节中,所以 ...
- 连载32:软件体系设计新方向:数学抽象、设计模式、系统架构与方案设计(简化版)(袁晓河著)...
线性化 其实本章节的设置就显得有些为难,按照常理需要大家针对后面的"线性化机制"一章节进行充分理解后,我们才能更好的进行线性化的数学抽象.然而又为了照顾统一在数学抽象的章节中,所以 ...
- 连载13:软件体系设计新方向:数学抽象、设计模式、系统架构与方案设计(简化版)(袁晓河著)...
置换的群特征 我们先来看看在计算机设计中最基本的三个置换,一个是从值到地址的置换方式,我们称为值-地址置换,一个是从地址到值的置换,我们称为地址-值置换.当然如果再加上对其值赋值为其他值操作或者对地址 ...
- 连载03:软件体系设计新方向:数学抽象、设计模式、系统架构与方案设计(简化版)(袁晓河著)
统一化 打破了这种集合关系,那么我们需要重新整理一下我们的思路,这些特征到底是什么关系呢?感觉有点乱. 不过没有关系,我们先跳出面向对象的原有的思维方式,我们先从计算机的最基本的处理来看,在计算机里面 ...
- 连载03:软件体系设计新方向:数学抽象、设计模式、系统架构与方案设计(简化版)(袁晓河著)...
统一化 打破了这种集合关系,那么我们需要重新整理一下我们的思路,这些特征到底是什么关系呢?感觉有点乱. 不过没有关系,我们先跳出面向对象的原有的思维方式,我们先从计算机的最基本的处理来看,在计算机里面 ...
- 连载08:软件体系设计新方向:数学抽象、设计模式、系统架构与方案设计(简化版)(袁晓河著)...
置换的规范和度量 所以这里可以看出置换具有统一的"可替换"属性,在第二章描述的多重继承体.包含体.包容体.以及函数对象等多个结构中其置换都具有可互联的特征,比如多重继承就是将继承置 ...
- 连载17:软件体系设计新方向:数学抽象、设计模式、系统架构与方案设计(简化版)(袁晓河著)...
置换公理化的缺陷 虽然我浓墨重彩阐述了"置换"公理化作为软件设计中的种种优势,然而对于公理化过程来说,其本身的缺陷也是显而易见的. 首先需要明确的是:方法不是唯一的,公理化方法是处 ...
- 连载26:软件体系设计新方向:数学抽象、设计模式、系统架构与方案设计(简化版)(袁晓河著)
最小生成树 生成树: 如果连通图G的一个子图是一棵包含G的所有顶点的树,则该子图称为G的生成树. 生成树是连通图的包含图中的所有顶点的极小连通子图. 图的生成树不惟一.从不同的顶点出发进行遍历,可以得 ...
最新文章
- 批处理编程的异类——时钟(Clock)
- python 回归去掉共线性_以IPL数据集为例的线性回归技术概述
- 小游戏_猜数_JAVA
- java http 状态_Java HTTP连接似乎保持打开状态
- scala java抽象理解_Scala - 抽象类型和隐式参数解析
- 2018中国C++大会精彩回顾
- JavaOne 2014:会议与合同利益冲突
- 使用VS2015编写C/C++开始步骤
- CSAPP--整数的表示
- 在HubSpot是如何应对Fat JAR困境的
- C++中的 .h 和 .cpp 区别详解
- linux 统计目录大小并按大小排序
- 详解C#防访问修饰符:public,private,protected,internal
- 下标要求数组或指针类型_算法一看就懂之「 数组与链表 」
- 女的喜欢OBC男的喜欢OGC的含义(转)
- 数据库索引键uk_数据库SQLServer
- MFC 消息映射的实现
- CAD软件查看.dwg、.dxf、.dwf、.jpeg、.jpg、.png、.gif等文件
- 深度贝叶斯神经网络(Deep Bayesian Neural Networks)实现方法
- 解密SuperWebview的一种另类方法
热门文章
- 手把手 php mysql_Ubuntu 12.04 搭建PHP环境(MySQL+PHP+Apache环境)手把手教程 含
- 浅谈计算机操作系统ppt,win7操作系统ppt
- 远程抄表系统设备的维修流程
- 使用红外温度传感器制作非接触式红外测温仪
- Lesson 8 几何渲染
- 【服务器数据恢复】Linux环境下RAID6磁盘阵列数据恢复案例
- Mac效率工具 HapiGo 1.0.1 Mac中文版
- 用python写 祝你生日快乐英文_八种祝你生日快乐英文表达,太实用了!
- 组件skype服务器,Skype for Business服务器管理工具 - 报表分析
- Apache Spark 练习七:使用Spark分析化妆品电子商务数据