大家都知道 GoF的那23种设计模式,它衍生了Java平台的设计模式,.net平台的设计模式,有的人认为这种衍生是错误的,因为我们经常听到,设计模式是和编程语言,编程平台无关的。这是对的,但是设计模式一定要和编程平台结合起来考虑才能有更高的生产力。
设计模式不是创造和发明的,是人们经验的总结,是一种实践的经验总结,我们可以在前人的总结上使用模式解决特定的问题。那么设计模式真的只有23种吗?
作为一个开发人员,我们应该在这23种设计模式的基础上结合问题本身,创造一种更好的设计,如果这种设计能解决同类的大部分问题,那么我们的这种设计也可以说成是一种设计模式,当然它是否能够成为一种规范,并不重要。
我们一定要有发现模式的勇气,如果我们发现的解决方案有以下三个特征,那么就是发现了一种新的模式。
- 在特定的场景下有可重用性,对相同的类型不同问题的环境,其解决方案都有效。
- 可传授性,即问题出现的机会很多,解决问题的方案相同,人们相对可以接受。
- 有表示模式的名称。