我们都知道 设计模式分为23种,可以分为三大类:创建型模式(Creational Patterns)、结构型模式(Structural Patterns)和行为型模式(Behavioral Patterns)。
创建型模式主要 关注于对象的创建,同时隐藏创建逻辑;
包括: 工厂模式,抽象工厂模式 ,单例模式,建造者模式,原型模式。
结构型模式主要 关注类和对象之间的组合;
包括:适配器模式,过滤器模式,装饰模式,享元模式,代理模式,外观模式,组合模式,桥接模式。
行为型模式主要关注对象之间的通信;
包括:责任链模式,命令模式,中介者模式,观察者模式,状态模式,策略模式,模板模式,空对象模式,备忘录模式,迭代器模式,解释器模式,访问者模式。
针对学习设计模式的方式给出几点更加具体的建议:
1)从生活例子中去理解设计模式;
2)从实际案例去了解设计模式的使用场景;
3)动手实践,在学完实际案例之后,不妨动手写一写,不要写生活中的例子,自己构造一个小功能,用上你的设计模式;
4)改变自己的意识,在开发或修改一个功能时,首先要下意识地去思考这个功能将来在修改和扩展上会遇到什么问题,能否使用上设计模式。记住一定要思考、一定要思考、一定要思考,即便最终用不上,也能让你回顾一遍设计模式的内容,使其知识更牢固。很多开发者不是不会用,而是根本没有想过要用设计模式,久而久之这方面的能力自然就弱化了。
学习设计模式需要理解的几种UML 关系:
泛化:可以简单的理解为继承关系;
实现:一般是接口和实现类之间的关系;
关联:一种拥有关系,比如老师类中有学生列表,那么老师类和学生类就是拥有关系;
聚合:整体与部分的关系,但是整体和部分是可以分离而独立存在的,如汽车类和轮胎类;
组合:整体与部分的关系,但是二者不可分离,分离了就没有意义了,例如,公司类和部门类,没有公司就没有部门;
依赖:一种使用关系,例如创建 A 类必须要有 B 类。