思考并回答以下问题:
桥接模式
思考并回答以下问题:
- 桥接模式为什么是结构型模式?
- 某个类存在两个独立变化的维度,用毛笔和蜡笔怎么举例?
- 型号可认为是毛笔的抽象部分,而颜色是毛笔的实现部分。怎么理解?
- 任意组合子类,从而获得多维度组合对象。怎么理解?
- 桥接模式和适配器模式用于设计的不同阶段,桥接模式用于系统的初步设计,对于存在两个独立变化维度的类可以将其分为抽象化和实现化两个角色,使它们可以分别进行变化;而在初步设计完成之后,当发现系统与已有类无法协同工作时,可以采用适配器模式。但有时在设计初期也需要考虑适配器模式,特别是那些涉及大量第三方应用接口的情况。怎么理解?
- 用抽象关联来取代传统的多层继承,将类之间的静态继承关系转换为动态的对象组合关系。原来的多层继承是怎么写的?存在什么问题?怎么用桥接模式取代?
- 将它们设计为两个独立的继承等级结构,为两个维度都提供抽象层,并建立抽象耦合。怎么做到?
- 可以针对两个维度的抽象层编程,在程序运行时再动态地确定两个维度的子类,动态地组合对象。怎么理解?
职责链模式
思考并回答以下问题:
- 行为型模式分为类行为型模式和对象行为型模式两种。两者有什么区别?
- 在一个不纯的职责链模式中,允许某个请求被一个具体处理者部分处理后向下传递,或者一个具体处理者处理完某请求后其后继处理者可以继续处理该请求,而且一个请求可以最终不被任何处理者对象所接收并处理。怎么理解?
- C#语言中的异常处理(Exceptior Handlers)机制也是职责链模式的典型应用之一,不同的catch子句可以处理不同类型的异常,这些catch子句构成了一条处理异常对象的职责链。怎么理解?