设计模式详解:模式汇总与索引清单
从本篇开始,和您一起进入设计模式的世界。
之前用C#做微信微信公众号开发系列文章,更多的是原生模式,帮助猿友们理解业务流程和基本实现方法,但是那些类的实现仍然是用面向过程的思维方式,不利于后期的扩展,没法适应大规模、高并发的需求。一起学完了设计模式之后,咱们再来重构一套微信公众号开发的程序代码。
为什么要使用设计模式
很明显,这就跟我们看别人的代码来学习一样,是为了学习里面的精髓。每一本设计模式的书都会告诉你,这些都是在讲究如何对修改封闭,对扩展开放的事情。我们学东西,重要的是学idea,次要的是学technique。翻译成编程的语言就是,我们学设计模式,是为了学习如何合理的组织我们的代码,如何解耦,如何真正的达到对修改封闭对扩展开放的效果,而不是去背诵那些类的继承模式。
设计模式要是真的学会了,你们会发现在写代码的时候,脑子里根本没有什么设计模式,你都已经融会贯通了。代码写完了一看,这里有模式,那里也有模式。这就如同我们讲话不会去考虑语法,但是说出来大部分的话都是符合语法要求的。这也如同我们写程序的时候不会总是去想程序的语法的问题,我们自然而然写出来的东西就是可以编译的。道理都是一样的。
不过为了合理的利用设计模式,我们应该明白一个概念,叫做扩展点。扩展点不是天生就有的,而是设计出来的。我们设计一个软件的架构的时候,我们也要同时设计一下哪些地方以后可以改,哪些地方以后不能改。倘若你的设计不能满足现实世界的需要,那你就要重构,把有用的扩展点加进去,把没用的扩展点去除掉。这跟你用不用设计模式没关系,跟你对具体的行业的理解有关系。
怎样设计一个优秀的模式
在前面提到了设计模式是实现了七大设计原则的具体方式,只要满足七大设计原则,我们就可以认为这是一个好的模式,那么这七大原则分别是什么,如下图:
设计模式的常见分类和模式名称
设计模式详解与案例索引链接
面向对象的七大设计原则;