必须得开始学习一些模式,不然好难理解面向对象的精华。
自己试着写写,自勉和自励。
欢迎指正。
参考书目《Design Patterns:Elements of Reusable Object-Oriented Software》Erich Gamma,Richard Helm,Ralph Johnson,John Vlissides.
1.什么是设计模式(design pattern)
设计模式是一种可复用的解决方案。针对特定的问题。
书中给出的定义:对被用在特定场景下解决一般设计问题的类和相互通信的对象的描述。
设计模式主要是面向对象的,而且不同于传统的数据结构(虽然数据结构也可以复用)。
也可以说它是一种抽象的设计方式,方法。因为对不同的人会有不同的方法,而抽象来看,都会有共性。
2.设计模式的四要素:
(1)Pattern name:一个名字而已,当然也反应模式本身的特点。只是为了便于交流。
(2)Problem:问题。也就是说特定的模式需要有特定的条件,也是为了解决特定的问题。
(3)Solution:是对问题的抽象描述和解决。确定解决方案的组成部分,各部分的相互关系和职责。就是确定一些接口和类,并组织他们。
(4)consequences:效果。模式并不是万能的,我们还需要取舍一些问题,就好比算法的时间和空间的取舍。主要是用来评价模式的使用效果。
3.其他
“ 一个设计模式命名,抽象和确定一个通用设计结构的主要方面。”
这里的通用是对同一类问题,而不是所有问题。
设计模式是一种抽象的方法,是一种经验。不同于算法。但它的具体实现肯定需要算法。
所谓设计结构,就是一些类,对象和接口的组织关系。
不同的设计结构有不同的功能,有不同的抽象效果。
欢迎指正。