1.面向对象
把数据以及数据的操作方法放到一起,作为一个相互依存的整体——对象。对同类对象抽象其形成共性,形成类。。类中的大多数数据,只能用本类的方法进行处理。类通过一个简单的外部接口与外界发生关系,对象与对象之间通过消息进行通信。程序流程由用户在使用中决定。对象即为人对各种具体物体抽象后的一个概念,人们每天都要接触各种各样的对象,如手机就是一个对象。
1.1面向对象的三大特征:
封装
例如实体类,属性
private
修饰,意为私有的,方法(get、set
等方法)使用public
修饰,意为外部可以对属性值进行操作。继承
子类继承父类,可以得到父类的所有属性以及方法。
多态
一个行为可以有多种不同的表达方式。例如方法的重载与重写....
1.2 面向对象的特点
面向对象的特点是可维护、可复用、可扩展、灵活性好,它真正强大的地方在于:随着业务变得越来越复杂,面向对象依然能够使得程序结构良好,而面向过程却会导致程序越来越臃肿。让面向对象保持结构良好的秘诀就是设计模式,今天力扣就带领大家一起来探索设计模式的世界!
2.设计模式
设计模式的世界丰富多彩,比如生产一个个「产品」的工厂模式,衔接两个不相关接口的适配器模式,用不同的方式做同一件事的策略模式,构建步骤稳定、根据构建过程的不同配置构建出不同对象的建造者模式等。面向对象结合设计模式,才能真正体会到程序变得可维护、可复用、可扩展、灵活性好。设计模式对于程序员而言并不陌生,每个程序员在编程时都会或多或少地接触到设计模式。无论是在大型程序的架构中,亦或是在源码的学习中,设计模式都扮演着非常重要的角色。
设计模式基于六大原则:
开闭原则:一个软件实体如类、模块和函数应该对修改封闭,对扩展开放。
单一职责原则:一个类只做一件事,一个类应该只有一个引起它修改的原因。
里氏替换原则:子类应该可以完全替换父类。也就是说在使用继承时,只扩展新功能,而不要破坏父类原有的功能。
依赖倒置原则:细节应该依赖于抽象,抽象不应依赖于细节。把抽象层放在程序设计的高层,并保持稳定,程序的细节变化由低层的实现层来完成。
迪米特法则:又名「最少知道原则」,一个类不应知道自己操作的类的细节,换言之,只和朋友谈话,不和朋友的朋友谈话。
接口隔离原则:客户端不应依赖它不需要的接口。如果一个接口在实现时,部分方法由于冗余被客户端空实现,则应该将接口拆分,让实现类只需依赖自己需要的接口方法。
设计模式的分类:
5种构建型模式: 构建型模式就是构建对象的
7种结构型模式: 结构型模式是用来设计程序的结构的。结构型模式就像搭积木,将不同的类结合在一起形成契合的结构。
适配器模式:将一个类的接口转换成客户希望的另外一个接口,使得原本由于接口不兼容而不能一起工作的那些类能一起工作。用于有相关性但不兼容的接口.
桥接模式: 用于同等级的接口互相组合
组合模式: 用于整体与部分的结构
装饰模式
外观模式
享元模式
代理模式
11种行为型模式:行为型模式重点关注 类与类之间的交互与协作。如同在工作中,每个人的行为都可能影响到其他同事,同时每个人也会受到别人的影响。我们一边接收上级的指令,一边派发任务给下级,在这样的协作中完成一项项伟大的工作。程序在运行时,每个对象都不是孤立的,他们可以通过通信与协作完成种种复杂的功能。
责任链模式
命令模式
解释器模式
迭代器模式
中介者模式
备忘录模式
观察者模式
状态模式
策略模式
模板方法模式
访问者模式