Java听课笔记——10.30

感觉今天没讲什么东西唉......

一开始,解释了一下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原则
依赖倒置原则

其实就是设计思路的问题

要针对接口编程,不要针对实现编程。

使用接口和抽象类而不是具体类

是不是就是面向对象的意思?

今天就讲了这些

猜你喜欢

转载自blog.csdn.net/lannister_awalys_pay/article/details/83540300