封装: | 封装给对象提供了隐藏内部特性和行为的能力。对象提供一些能被其他对象访问的方法来改变它内部的数据。在Java中有3种修饰符:public,private,protected,每一种修饰符给其他的位于同一个包或不同包下面对象赋予了不同的访问权限。 封装的优点:通过隐藏对象的属性来保护对象内部的状态。提高了代码的可用性和可维护性,因为对象的行为可以被单独的改变或者是扩展。禁止对象之间的不良交互提高模块化。 |
继承: | 继承给对象提供了从基类获取字段和方法的能力。继承提供了代码的重用性,也可以在不修改类的情况下给现存的类添加新特性。 |
抽象: | 抽象是把想法从具体的实例中分离出来的步骤,所以,要根据他们的功能而不是实现细节来创建类。Java支持创建值暴露接口而不包含方法实现的抽象的类。这种抽象技术的主要目的就是把类的行为和实现细节分离开。 |
多态: | 多态是编程语言给不同的底层数据类型做相同的接口展示的一种能力。一个多态类型上的操作可以应用到其他类型的值上面。 |
抽象和封装的不同点: | 抽象和封装是互补。一方面,抽象关注对象的行为。封装关注对象行为的细节。一般是通过隐藏对象内部状态信息做到封装,所以,封装可以看成是用来提供抽象的一种策略。 |
策略模式: | 定义一组算法,将每个算法都封装里面,并且使它们之间可以互换。 策略模式三个模块: Context:上下文对象,起承上启下封装作用,屏蔽高层模块对策略、算法的直接访问,封装可能存在的变化。 Strategy抽象策略接口:通常为一个接口,定义每个策略或算法必须具有的方法和属性。 ConcreteStrategy具体策略实现方法:策略实现的具体方法 |