一、设计模式的分类
总体分为三大类:
创建型模式,关注对象的创建(“花样new模式”),共5种:
工厂方法模式、抽象工厂模式、单例模式、建造者模式、原型模式;结构型模式,关注类与类之间的关系,组合优于继承(“包一层模式”),共7种:
适配器模式、装饰器模式、代理模式、外观模式、桥接模式、组合模式、享元模式;行为型模式,关注的是对象和行为的分离,对象和方法到底放在哪里,把不稳定的东西丢给别人管理,或者说专事专办(“甩锅模式”),共11种:
策略模式、模板方法模式、观察者模式、迭代器模式、责任链模式、命令模式、备忘录模式、状态模式、访问者模式、中介者模式、解释器模式;其他模式,2种:
并发型模式、线程池模式。
二、设计模式的缺陷
结构型、行为型、大部分的创建型,都是靠抽象来完成扩展性。
因为类是静态的,想扩展,只能靠抽象来进行细节的替换。
这就是OOP的困境,想扩展,基本得靠抽象。
这时,AOP面向切面编程就可以发挥作用了,可以在不破坏封装的前提下,去扩展通用功能。
设计模式就是设计中经验套路的归纳总结,实际工作过程中需要灵活使用,按需选择,切忌过度设计!