设计模式的分类及设计模式之间的关系
前言
设计模式的分类
总体来说设按照功能可将计模式分为三大类:创建型模式、结构型模式、行为型模式。
创建型模式(Creational patterns)
创建型模式,顾名思义就是用来创建对象的设计模式,所以这种类型的模式主要用途是就用于创建对象,关注点是对象的创建。这种类型的设计模式主要特点是将创建对象的过程进行了抽象,封装,对于对象的使用者而言只需调用,而不需要去关心对象创建的过程如何。
结构型模式(Structural patterns)
结构型设计模式,为我们如何组合类和对象以获得更大的结构提供思路,从程序的结构上解决模块之间的耦合问题。 从组合结构上来看,又可以分为两类:类结构型模式、对象结构型模式。类结构型模式主要关心类的组合,由多个类可以组合成一个更大的系统,在类结构型模式中一般只存在继承关系和实现关系;对象结构型模式则主要关心类与对象的组合,通过关联关系使得在一个类中定义另一个类的实例对象,然后通过该对象调用其方法,更符合 “合成复用原则”。
行为型模式(Behavioral patterns)
行为型模式,是设计模式中最为庞大的一类,前面两类模式已经解决了对象的创建问题及类和对象的组合结构问题,那么这第三大类型的模式自然就是用来解决类或对象相互协作的问题。这类设计模式主要用于描述程序在运行时复杂的流程控制,例如分配算法与对象间职责,协调类或对象之间相互协作等。 当然,行为型模式也可分为两类:类行为模式、对象行为模式。类行为模式采用继承机制来在类间分派行为,对象行为模式则采用组合或聚合在对象间分配行为;由于组合关系或聚合关系比继承关系耦合度低,满足 “合成复用原则”,所以对象行为模式比类行为模式具有更大的灵活性。
设计模式之间的关系
给两张图
设计模式在软件中的应用
1 | A(面向对象) -->|设计模式+算法+数据结构| B[功能模块] |
总结
设计模式实际是众多软件开发人员经过相当长的一段时间的试验和错误总结出来的问题解决方案,当我们在软件开发过程中面临一般问题时,不妨从这方面入手看是否能找到解决方法。