软件设计六大原则
在谈设计模式之前,首先谈谈与之相关的软件设计六大原则。在软件设计的初期,我们常常会进行需求调研,评估现有的需求并且预测将来很有可能会发生变更的需求,但是我们并不能控制需求的变更。问题来了,一旦需求发生变更,那我们应该怎样处理呐?幸运的是前辈们首先提出了6大设计原则,但这仅仅是“口号”,仅仅是指导你应该做成什么样,并没有告诉你具体应该怎么做,于是23种设计模式横空出世。
设计模式
设计模式是人们为软件开发中相同表征的问题,抽象出的可重复利用的解决方案,代表了在特定情况下解决问题的最佳实践,它是若干工程师在实践探索中积累的经验,能够解决一系列复杂性的问题,提高系统的可维护性,使我们的代码更加高效优雅,同时也起到软件工程师之间沟通“行话”的作用。
设计模式分类
大致按照模式的应用目标分类,设计模式可以分为创建型模式,结构型模式和行为型模式。
- 创建型模式
是对对象创建过程的各种问题和解决方案的总结,包括各种工厂模式(Factory,Abstract Factory)、单例模式、构造器模式等。
名称 | 介绍 | 链接 |
---|---|---|
单利模式 | 一个类只有一个实例 | 地址 |
工厂方法模式 | 工厂方法模式就是定义一个创建对象的接口,让子类决定实例化哪一个类。工厂方法使一个类的实例化延迟到其子类。 | 地址 |
Builder模式 | 将一个复杂对象的构建与它的表示分离,使得同样的构建过程可以创建不同的表示 | 地址 |
- 结构型模式
是针对软件设计结构的总结,关注于类、对象继承、组合方式的实践经验。包括桥接模式、适配器模式等
名称 | 介绍 | 链接 |
---|---|---|
代理模式 | 为其他对象提供一种代理以控制对这个对象的访问 | 地址 |
- 行为型模式
是从类或对象之间交互、职责划分等角度总结的模式。包括策略模式等
名称 | 简介 | 链接 |
---|---|---|
策略模式 | 多个类只有在算法或行为上的不同 | 地址 |
模板方法 | 定义一个操作中的算法框架,而将一些步骤延迟到子类中。使得子类可以不改变一个算法的结构即可重新定义该算法的某些步骤 | 地址 |