面向对象三大特性:
- 继承:略
- 封装:通过权限修饰符,隐藏不想暴露的数据或方法,只对外提供想暴露的方法。
- 多态:相同的消息作用于不同的对象,会产生不同的响应。简单的说就是父类的引用指向子类的实例
面向对象六大原则:
- 单一职责原则:类的设计尽量只做一件事,降低耦合,提高重用性。
- 依赖倒置原则:依赖抽象,不依赖具体实现。(这句话本来就很抽象、简单来说就是面向接口或抽象类编程。)
- 迪米特法则:一个类对其他类应保持最少的了解,也称为最少知识原则,降低耦合,不管多么复杂的逻辑,都封装在类内部,只对外提供一个public方法。
- 里氏替换原则:子类可以替换父类,体现在编码时为以下4点
- 子类可以实现父类的抽象方法,但不能覆盖父类的非抽象方法。
- 子类中可以增加自己特有的方法。
- 当子类的方法重载父类的方法时,方法的前置条件(即方法的形参)要比父类方法的输入参数更宽松。
- 当子类的方法实现父类的抽象方法时,方法的后置条件(即方法的返回值)要比父类更严格。
- 接口隔离原则:客户端不应该依赖它不需要的接口,类间的依赖关系应该建立在最小的接口上
- 开放封闭原则:对扩展开发,对修改封闭。咋实现呢,不知道,个人感觉上面5个原则做好,最后一个自然就实现了。用抽象构建软件架构,用实现实现扩展细节。
23种设计模式:
创建型:1、工厂方法模式2、抽象工厂模式3、单例模式4、建造者模式5、原型模式
结构型:1、适配器模式2、装饰器模式3、代理模式4、外观模式5、桥接模式6、组合模式7、享元模式
行为型:1、策略模式2、命令模式3、状态模式4、观察者模式5、访问者模式6、中介者模式7、迭代器模式8、解释器模式9、模板方法模式10、责任链模式11、备忘录模式
接下来逐一深入研究