oop思想:封装、继承、多态 把组件实现和接口分开,并且让组件具有多态性
面向对象编程是一种解决软件复用的设计和编程方法,这种方法把软件中相近相似的操作逻辑和操作应用数据、状态以类的形式描述出来,以对象实例的形式在软件系统中复用,以达到提高软件开发效率的作用。
封装: 封装可以使类具有独立性和隔离性;保证类的高内聚。只暴露给类外部或子类必须的属性和操作。
继承:对现有类的一种复用机制。一个类如果继承现有的类,则这个类将拥有被继承类的所有菲斯有特性(属性和操作)。这里指的继承包含:类的继承和接口的实现。
多态:多态是在继承的基础上实现的。多态的三个要素:继承、重写和父类引用指向子类对象。父类引用指向不同的子类对象时,调用相同的方法,呈现出不同的行为;几十类多态特性。多态可以分成编译时多态和运行时多态。
oop 五大设计原则(SOLID原则) 外加 迪米特法则 和 组合优于继承原则(合成复用原则):
一、单一职责原则
单一职责有2个含义,一个是避免相同的职责分散到不同的类中,另一个是避免一个类承担太多职责。减少类的耦合度,提高类的复用性。
二、接口隔离原则
表明客户端不应该被强迫实现一些他们不会使用的接口,应该把胖接口中的方法分组,然后用多个接口代替它,每个接口服务于一个子模块。简单说,就是使用多个专门的接口比使用单个接口好很多。
该原则观点如下:
1、一个类对另外一个类的依赖性应当是建立在最小的接口上
2、客户端程序不应该依赖它不需要的接口方法。
三、开放-封闭原则
open模块的行为必须是开放的、支持扩展的,而不是僵化的。
closed在对模块的功能进行扩展时,不应该影响或大规模影响已有的程序模块。一句话概括:一个模块在扩展性方面应该是开放的而在更改性方面应该是封闭的。
核心思想就是对抽象编程,而不对具体编程。
四、替换原则
子类型必须能够替换掉他们的父类型、并出现在父类能够出现的任何地方。
主要针对继承的设计原则
1、父类的方法都要在子类中实现或者重写,并且派生类只实现其抽象类中生命的方法,而不应当给出多余的,方法定义或实现。
2、在客户端程序中只应该使用父类对象而不应当直接使用子类对象,这样可以实现运行期间绑定。
五、依赖倒置原则
上层模块不应该依赖于下层模块,他们共同依赖于一个抽象(父类不能依赖子类,他们都要一类抽象类)
抽象不能依赖于具体,具体应该要依赖于抽象
24种设计模式(gof23+1)
创建型模式:
1、简单工厂模式(不包含在gof23中)
2、工厂模式
3、抽象工厂模式
4、单例模式
5、原型模式
6、创建者模式
结构型模式:
1、组合模式
2、装饰者模式
3、外观模式
4、适配器模式
5、代理模式
6、享元模式
7、桥接模式
行为型模式
1、观察者模式
2、策略者模式
3、状态模式
4、中介模式
5、模板方法
6、命令模式
7、备忘录模式
8、访问者模式
9、解释器模式
10、迭代器模式
11、职责链模式