感觉今天没讲什么东西唉......
一开始,解释了一下ArrayList里的每个元素如果不进行类型约束的话
自然赋值为Object类,而且是兼收并蓄的
同时讲了使用迭代器对ArrayList数组进行遍历,直接上代码
讲了设计模式
1.UML
2.设计原则
基本原则 |
英文全拼 |
中文名称 |
SRP |
The Single Responsibility Principle |
单一职责 |
OCP |
The Open Closed Principle |
开放封闭 |
LSP |
The Liskov Substitution Principle |
里氏替换 |
ISP |
The Interface Segregation Principle |
接口分离 |
DIP |
The Dependency Inversion Principle |
依赖倒置 |
SRP
单一职责:
一个类只做一件事,只有一个原因使它变化
否则后果:破坏高内聚、低耦合
OCP
开放封闭原则
适时地开方封闭
对扩展开方对修改关闭
然后老师写了一段代码进行解释:
例如实现加减乘除运算
定义一个Calculator接口,这个接口只有一个方法
你可以在继承中扩展它,但是不去修改它的源代码
然后在定义加减乘除类进行继承后实现各自的具体方法
然而,对各个运算函数的操作不是裸的,而是用另外的方法包裹——Client类
在实现的时候先定义一个加法器ad,在调用Client做加法
讲了这么多就是为了让我们理解这个原则
LSP
里氏替换原则
子类型能够完全替换父类型,而不让调用父类型的客户程序从行为上有任何改变
老师为了让我们理解,就讲了一个反例
父类为bird类
子类为Ostrich类
许多属性并不能完全替代父类,比如鸵鸟不会飞
ISP原则
接口隔离原则
不应该让用户实现其不用的方法,接口的方法利用率要高,数量要少
DIP原则
依赖倒置原则
其实就是设计思路的问题
要针对接口编程,不要针对实现编程。
使用接口和抽象类而不是具体类
是不是就是面向对象的意思?
今天就讲了这些