设计模式考试总结
一、面向对象的设计原则:
1)面向对象的设计原则概述:
答:面向对象的设计原则分为可维护性和可复用性两种。
可维护性(Maintainability):指软件能够被理解、改正、适应及扩展的难易程度
可复用性(Reusability):指软件能够被重复使用的难易程度
面向对象设计的目标之一在于支持可维护性复用,一方面需要实现设计方案或者源代码
的复用,另一方面要确保系统能够易于扩展和修改,具有良好的可维护性。
1. 单一职责原则:一个对象应该只包含单一的职责,并且该职责被完整地封装在一个
类中
2. 开闭原则:软件实体应当对扩展开放,对修改关闭
3. 里氏代换原则:所有引用基类的地方必须能透明地使用其子类的对象。
4. 依赖倒转原则:高层模块不应该依赖低层模块,它们都应该依赖抽象。抽象不应该
依赖于细节,细节应该依赖于抽象
5. 接口隔离原则:客户端不应该依赖那些它不需要的接口
6. 合成复用原则:优先使用对象组合,而不是继承来达到复用的目的
7. 迪米特法则:每一个软件单位对其他的单位都只有最少的知识,而且局限于那些与
本单位密切相关的软件单位。
二、三类模式:创建型模式,行为型模式恶化结构型模式,每一个模式都属于哪一类?
答:1.创建型模式(Creational Pattern)关注对象的创建过程
创建型模式对类的实例化过程进行了抽象,能够将软件模块中对象的创建和对象
的使用分离,对用户隐藏了类的实例的创建细节
创建型模式描述如何将对象的创建和使用分离,让用户在使用对象时无须关心对
象的创建细节,从而降低系统的耦合度,让设计方案更易于修改和扩展。
2.创建型模式包含的种类:
1) 简单工厂模式:定义一个工厂类,它可以根据参数的不同返回不同类的实例,
被创建的实例通常都具有共同的父类。
2)工厂方法模式:定义一个用于创建对象的接口,但是让子类决定将哪一个类实
例化。工厂方法模式让一个类的实例化延迟到其子类。
3)抽象工厂模式:提供一个创建一系列相关或相互依赖对象的接口,而无须指定
它们具体的类。
4)建造者模式:将一个复杂对象的构建与它的表示分离,使得同样的构建过程可
以创建不同的表示。
5)原型模式:使用原型实例指定待创建对象的类型,并且通过复制这个原型来创
建新的对象。
6)单例模式:确保一个类只有一个实例,并提供一个全局访问点来访问这个唯一
实例。
3.结构性模式:结构型模式(Structural Pattern)关注如何将现有类或对象组织在一起形成
更加强大的结构不同的结构型模式从不同的角度组合类或对象,它们在尽可能满足各种面
向对象设计原则的同时为类或对象的组合提供一系列巧妙的解决方案:
类结构型模式:关心类的组合,由多个类组合成一个更大的系统,在类结构型模式中
一般只存在继承关系和实现关系