接口与抽象类
- 接口仅仅是方法定义和常量值定义的集合,方法没有函数体
- 抽象类定义的内容更多一些,可定义普通类所包含的所有内容,也可以定义抽象方法
- java语言从“思考-》实现”角度出发,通过接口和抽象类来反映思考的过程,而子类则是具体的实现过程。
- 区别于接口和抽象类则通过“顺序问题”和“顺序+共享”问题。
柔性多态
- 柔性多态的使用是为了消除父类和子类之间的强关联性。
在定义接口的多态函数时,取消内容上的多态,用一个其他多态函数代替调用其他函数,消除子类和父类之间的依赖关系
- 柔性多态的使用是为了消除父类和子类之间的强关联性。
反射
- 是指在程序运行时获取已知名称的类或已有对象的相关信息,例如:类方法、属性、父类等相关信息。
- 其中,Class类:代表一个类,Constructor类:代表类的构造方法;Field类:代表类的成员变量,Method类:代表类的方法
工厂模式
- 抽象产品接口-> 定制子类->定制工厂类
- 抽象产品接口->定制产品子类 ->定制抽象工厂- >定制具体子类工厂
- 抽象工厂同工厂,只是包含了更多的产品类!
生成器模式(建造者模式)
- 将一个复杂的构建与其表示进行分离,使得同样的构建过程可以创建不同的表示,关键思路在于,产品类与创建产品的类相分离。包括:产品、抽象生成器、具体生成器、指挥者。其中,指挥者是对流程的封装类,而生成器则是流程的具体过程,并由它完成不同步骤的关联。
观察者模式
- 适用于解决多种对象跟踪一个对象数据变化的程序结构问题,包括“主题“和若干个“观察者“对象。
- 主题需要知道有哪些观察者对其进行监控,因此,主题类中包含一个“观察者“集合类成员变量。
- 观察者具有多态性质
- 主题完成,添加观察者、撤销观察者和发送消息,并引起观察者响应的过程。
- 桥接模式
- 怎样将抽象部分与实现部分进行分离,使其成为独立变化的成熟模块;
- 桥接模式强调了适用包含来代替继承,
代理模式
- 给莫个对象提供代理,并由代理对象对原对象的引用,它是一种对象结构性模式,区别动态代理和静态代理主要通过判定多个主题是否会共享一个代理类。
状态模式
- 研究各种状态以及状态之间相互转化的实现方式,该模型提供了较好的设计思路。
- 访问者模式
- 封装一些施加于某种数据结构元素之上的操作,一旦这些操作需要修改,接受这个操作的数据结构可以保持不变
- 命令模式
- 主要是针对需要执行的任务或者用户提出的请求进行封装与抽象。抽象的命令接口描述了任务或者请求的共同特征,实现则交由不同的具体命令对象完成。命令的对象负责完成任务的执行,不需要关心是谁对它进行了调用。
- 装饰器模式
- 利用包含代替继承,动态的给对象添加一些额外的功能。
- 组合模式
- 用于处理树状结构问题。