上午題大概 12’, 下午大題2*15’ ~~
还有很多没有写,后面看到了再补充
面向對象的基本概念(★★★★★)
- 名詞釋義
a. 對象 :數據 + 方法 + 對象ID的集合
b. 類 :具有相同屬性的集合
c. 繼承 :復用機制
d. 封裝 :隱藏對象的屬性和實現方法,之對外開放同意接口
e. 多態 :不同對象收到同樣的消息產生不同的結果
f. 接口 :特殊類,只有方法定義沒有實現
g.重載 :函數名相同參數列表不同
h.模板類
i.消息和消息通信 :消息是異步通信 - 設計原則
a. 單一職責原則 :設計單一的類,保持獨立性
b. 開放-封閉 :對擴展開放,對修改封閉
c. 李氏替換原則 :子類可以替換父類***(容易被繼承打破)***
d. 依賴倒置原則 :依賴於對象,而不是具體實現,針對接口編程,而不是面向實現編程***(容易被重寫打破)***
f. 接口隔離原則 :使用多個專門的接口比使用單一的接口
g. 組合重用原則 :盡量使用組合,而不是繼承關係
h. 最少知識法則 :一個對象應當對其他對象更少的瞭解
UML - 通用建模語言
類圖(★★★★★)
用例圖(★★★★★)
順序圖(★★★★)
通信圖 (★★★)
狀態圖(★★★)
活動圖(★★★)
設計模式(★★★★★)
23種設計模式,其中一些解釋比較籠統,比較難劃分邊界。 哎
創建型模式
1. 抽象工厂模式(Abstract Factory):提供一个创建一系列相关或相互依赖对象的接口,而无需指定它们具体的类
2. 工厂方法(Factory Method):核心工厂类不再负责所有产品的创建,而是将具体创建的工作交给子类去做,成为一个抽象工厂角色,仅负责给出具体工厂类必须实现的接口,而不接触哪一个产品类应当被实例化这种细节
3. 原始模型模式(Prototype):用原型实例指定创建对象的种类,并且通过拷贝这个原型创建新的对象
4. 单例模式(Singleton):保证一个类仅有一个实例,并提供一个访问它的全局访问点
5. 建造模式(Builder):将一个复杂对象的构建与它的表示分离,使同样的构建过程可以创建不同的表示
結構型模式
6. 适配器模式(Adapter):将一个类的接口转换成客户希望的另外一个接口。适配器模式使得原本由于接口不兼容而不能一起工作的类可以一起工作
7. 桥接模式(Bridge):将抽象部分与它的实现部分分离,使它们都可以独立地变化
8. 装饰模式(Decorator):动态地给一个对象添加一些额外的职责。就扩展功能而言,它能生成子类的方式更为灵活
9. 享元模式(Flyweight):运用共享技术以有效地支持大量细粒度的对象
10. 代理模式(Proxy):为其它对象提供一个代理以控制对这个对象的访问
11. 组合模式(Composite):将对象组合成树形结构以表示“部分-整体”的层次结构。它使得客户对单个对象和复合对象的使用具有一致性
12. 外观模式(Facade):为子系统中的一组接口提供一个一致的界面,门面模式定义了一个高层接口,这个接口使得这一子系统更加容易使用
行爲型模式
1. 模板方法(TemplateMethod)模式:定义一个操作中的算法骨架,而将算法的一些步骤延迟到子类中,使得子类可以不改变该算法结构的情况下重定义该算法的某些特定步骤。
2. 策略(Strategy)模式:定义了一系列算法,并将每个算法封装起来,使它们可以相互替换,且算法的改变不会影响使用算法的客户。
3. 命令(Command)模式:将一个请求封装为一个对象,使发出请求的责任和执行请求的责任分割开。
4. 职责链(Chain of Responsibility)模式:把请求从链中的一个对象传到下一个对象,直到请求被响应为止。通过这种方式去除对象之间的耦合。
5. 状态(State)模式:允许一个对象在其内部状态发生改变时改变其行为能力。
6. 观察者(Observer)模式:多个对象间存在一对多关系,当一个对象发生改变时,把这种改变通知给其他多个对象,从而影响其他对象的行为。
7. 中介者(Mediator)模式:定义一个中介对象来简化原有对象之间的交互关系,降低系统中对象间的耦合度,使原有对象之间不必相互了解。
8. 迭代器(Iterator)模式:提供一种方法来顺序访问聚合对象中的一系列数据,而不暴露聚合对象的内部表示。
9. 访问者(Visitor)模式:在不改变集合元素的前提下,为一个集合中的每个元素提供多种访问方式,即每个元素有多个访问者对象访问。
10. 备忘录(Memento)模式:在不破坏封装性的前提下,获取并保存一个对象的内部状态,以便以后恢复它。
11. 解释器(Interpreter)模式:提供如何定义语言的文法,以及对语言句子的解释方法,即解释器。