设计模式与哲学

Posted zzfx

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了设计模式与哲学相关的知识,希望对你有一定的参考价值。

http://www.cnblogs.com/feng9exe/p/6782945.html
首先要提到的是,不论是过程论还是对象论,都承认一点,那就是程序世界本质上只有两种东西——数据和逻辑。数据天性喜静,构成了程序世界的本体和状态;逻辑天性好动,作用于数据,推动程序世界的演进和发展。尽管上述观点是统一的,但是在数据和逻辑的存在形式和演进形式上,过程论和对象论的观点截然不同。
 
 
大家都知道遵循设计原则是开发高质量软件的重要基础,但实际运用时并不容易。Booch在<<面向对象分析与设计>>中提出了四个基础原则:
  • 抽象   核心思想是不变性的概念。去除不关心的属性,而强化重要的属性,帮助人们思考要做什么。
  • 封装  核心是分离关注和信息隐藏,让程序借助最少的工作进行可靠的修改。
  • 模块化  核心思想是分而治之,各个模块应当高内聚、低耦合。
  • 层次结构  核心是对抽象的分级和排序,可以简化对系统的理解。

软件的组织、结构与变化。

创建型:对象生成、数据(状态)配置、内部组织;(面向对象基本单元:类);简单类、复杂类(对象)的生成方式。

结构型:二次组织;生成组织结构。

 

创建性与结构型设计模式,描述了系统的静态结构和基本功能。

 

行为型:软件的复杂功能,封装了软件的变化。用于构造稳定的抽象层。

 

软件设计模式的分类

2.1.  创建型

创建对象时,不再由我们直接实例化对象;而是根据特定场景,由程序来确定创建对象的方式,从而保证更大的性能、更好的架构优势。创建型模式主要有简单工厂模式(并不是23种设计模式之一)、工厂方法、抽象工厂模式单例模式、生成器模式和原型模式。

2.2.  结构型

用于帮助将多个对象组织成更大的结构。结构型模式主要有适配器模式adapter、桥接模式bridge、组合器模式component、装饰器模式decorator、门面模式、亨元模式flyweight和代理模式proxy

2.3.  行为型

用于帮助系统间各对象的通信,以及如何控制复杂系统中流程。行为型模式主要有命令模式command、解释器模式、迭代器模式、中介者模式、备忘录模式、观察者模式、状态模式state、策略模式、模板模式和访问者模式。

 

UML:关联、聚合、组合;

结构性模式定义的耦合关系为组合或聚合;

行为模式为关联;更多时候为函数内和接口的参量的引用。

以上是关于设计模式与哲学的主要内容,如果未能解决你的问题,请参考以下文章

架构设计与拆分的哲学

58集团大数据架构设计哲学与应用场景

Koa 原理学习路径与设计哲学

架构设计的哲学

spark 与 scikit-learn 机器学习流程组件设计哲学比较

go语言设计哲学