1. 程式人生 > >Java聽課筆記——10.30

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原則 依賴倒置原則

其實就是設計思路的問題

要針對介面程式設計,不要針對實現程式設計。

使用介面和抽象類而不是具體類

是不是就是面向物件的意思?

今天就講了這些