设计模式分类
设计模式,参考《设计模式--可复用的面向对象软件元素》、《大话设计模式》等书,大致可以分为23种,分别是创建型,结构型和行为型三种模式。除此之外,随着现代软件开发技术的发展,又出现了J2EE软件设计模式。
创建型模式 | 结构型模式 | 行为型模式 | J2EE模式 |
工厂模式 单例模式 建造者模式 原型模式 | 适配器模式 桥接模式 过滤器模式 组合模式 装饰器模式 外观模式 享元模式 代理模式 | 责任链模式 命令模式 解释器模式 迭代器模式 中介者模式 备忘录模式 观察者模式 状态模式 策略模式 模板模式 访问者模式
| MVC模式 业务代表模式 组合实体模式 数据访问对象DAO 前端控制器模式 拦截过滤器模式 服务定位器模式 传输对象模式
|
4种 | 8种 | 11种 | 8种 |
创建型模式:
创建对象,提供了一种在创建对象的同时隐藏创建逻辑的方式,而不是使用 new 运算符直接实例化对象。这使得程序在判断针对某个给定实例需要创建哪些对象时更加灵活。
结构型模式:
关注类和对象的组合。继承的概念被用来组合接口和定义组合对象获得新功能的方式。
行为型模式:
特别关注对象之间的通信,描述类或对象怎样交互和怎样分配职责。(类行为模式+对象行为模式)
设计模式原则
1.开闭原则
一个软件实体应当对外扩展开放,对内修改关闭。
2.单一职责原则
一个类,最好只做一件事,只有一个引起它变化的原因,单一职责,强调的是职责的分离。
3.里氏代换原则
把基类都替换成它的子类,程序的行为没有变化。
4.依赖倒转原则
(1)高层模块不应该依赖于低层模块,二者依赖于抽象。
(2)细节应该依赖于抽象
(3)针对接口编程,不要针对实现编程。
5.迪米特法则
又叫最少知识原则,一个对象应该对其他对象尽可能少的了解,“不要和陌生人说话”
6.接口隔离原则
使用多个专门的接口比使用单一的总接口要好,就是说一个类应该对另外一个类的依赖性应当建立在最小的接口上。
7.组合/聚合复用原则
优先使用对象组合/聚合关系,其次考虑使用类继承,达到复用的目的。