设计模式
- 责任链模式:多个对象都有机会处理请求,从而避免发送者和接收者之间的耦合关系,将这些对象串成一个链传输请求,直到有一个对象处理之。
- 命令模式:请求封装一个对象,从而使得使用者可以采用不同的请求对客户进行参数化,对请求排队或者记录请求日志,支持撤销。
- 抽象工厂模式:提供一个创建一系列相关或相互依赖的对象接口,无需指定它们具体的类。
- 观察者:模式定义对象间的一种一对多的依赖关系,当一个对象的状态发生更新,所有依赖对象都被更新。
- 原型:用原型实例创建对象种类,并通过拷贝这个原型来获得新的对象。
- 工厂方法:定义一个用于创建对象的接口,让子类决定将哪一个类实例化,是一个类的实例化延迟到其子类。(1.当一个类不知道她创建的对象的类的时候,2.当一个类希望她的子类来构造类的时候,
- 单例:只有一个对象实例(1.只能由一个众所周知的访问点访问)
- 桥接:将抽象部分与其实现部分进行分离,使他们都可以独立变化。
- 组合:将对象组合成树形结构以表示部分——整体结构,是的用户对于单个对象和所有对象具有一致性。
- 享元模式:细粒度有关
- 外观模式:定义一个高层接口,(应用1.为一个复杂的系统定义一个简单的子接口时,2.为了一个客户和子系统依赖性太大时候那么就用这种方式,构建一个层次子系统时。)
- 生成器模式:将一个复杂的对象构建并分离,同样的创建过程有不同的表示(1.当创建复杂的对象且独立于该对象的组成部分和装配模式时2.当构造必须允许有不同的表达方式时。)
-
中介者(Mediator)用一个中介对象米封装一系列的对象交互。中介者使各对象不需要显式地相互引用,从而使其耦合松散,而且可以独立地改变它们之间的交互。适用于:一组对象以定义良好但是复杂的方式进行通信,产生的相互依赖关系结构混乱且难以理解;一个对象引用其他很多对象并且直接与这些对象通信,导致难以复用该对象;想定制一个分布在多个类中的行为,而又不想生成太多的子类。欲使一个后端数据模型能够被多个前端用户界面连接,采用中介者模式最合适。
中介者(调解员)用一个中介对象米封装一系列的对象交互.中介者使各对象不需要显式地相互引用,从而使其耦合松散,而且可以独立地改变它们之间的交互.适用于:一组对象以定义良好但是复杂的方式进行通信,产生的相互依赖关系结构混乱且难以理解;一个对象引用其他很多对象并且直接与这些对象通信,导致难以复用该对象;想定制一个分布在多个类中的行为,而又不想生成太多的子类.欲使一个后端数据模型能够被多个前端用户界面连接,采用中介者模式最合适.
11.装饰器:以透明围栏来支持修饰类和对象的关系,动态的给一个对象添加一些额外的职责,以增加功能的角度看,比生成子类更灵活。常考!!!
2.类与类之间的关系
五种关系:依赖、关联、聚合、组合、继承。
依赖是最弱的关系,使用类库就算是一种依赖。
聚合和组合都是整体和部分的关系,组合的程度比聚合高
区别在于,整体对象消失时部分也随之消失那就是组合,如果整体消失部分对象仍然可以用那么就是聚合。
一个类中成员变量即对应属性,成员函数即对应方法。
面向对象分析————>理解问题不考虑解决(包含1.认定对象2.组织对象3.描述对象相互作用4.定义对象操作和内部信息
面向对象设计————>解决方案考虑细节问题
在编译时绑定的是静态绑定,在运行时绑定的是动态绑定。