模式还是原则?
私以为,设计原则就像授之以渔,设计模式就像授之以鱼。
更侧重学习设计原则的原因
- OO设计模式有很多,基础的设计模式为大名鼎鼎的GOF23设计模式,另外还有很多种特定领域的设计模式。套路太多。
- 设计模式是对设计原则实践的经验总结,可以让代码模块解耦,易于扩展和维护。随着微服务的推广,每一个功能模块都可以分离出一个独立的服务,并通过restFul接口调用进行功能模块间的解耦。微服务推广本身项目在系统架构进行了解耦。
- 在设计一个工程的时候,简单的设计就是强大的设计,刻意去用设计模式,反而会给项目的维护和扩展带来麻烦。专注于模式,会造成形而上学的刻板,反而无法自然的使用模式。
因此
在学习OO设计模式的时候,不应拘泥于模式,要在其体现的设计原则上倾注更多的思考和学习。
OO设计原则,共有如下几项:
- 封装变化
- 多用组合,少用继承
- 针对接口编程,不针对实现编程
- 为交互对象之间的松耦合设计而努力
- 类应该只对扩展开放,对修改关闭
- 依赖抽象,不要依赖具体类
- 只和朋友交谈(外观模式)
- 别找我,我会找你(模板模式)
- 类应该只有一个改变的理由
我将在后面的文章中,对head first pattern一书做总结,并花更多的精力和心思在设计原则的总结上。
版权声明:本文为dshf_1原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。