C#基礎之 二十 設計模式之簡單工廠模式及介面
阿新 • • 發佈:2018-11-25
前言
這幾天看了這些視訊進行了一些總結,我是打算先看完C#視訊然後繼續看設計模式這本書的,但是視訊中提到了一部分設計模式中的內容,那麼我也多少的總結一下吧,有助於後邊對設計模式的學習!
交流與互動
- 介面:
- 簡介:由一套陳述、功能、選項、其它表達程式結構的形式、以及程式師使用的程式或者程式語言提供的資料組成,一種規範,一種能力,一種模式
- inferface關鍵字,介面中可以有屬性、方法(未實現),名稱常以“I”開頭
- 如果一個類既繼承了類又實現了介面,那麼類必須寫在前面,一個類只能繼承一個父類,但可以實現多個介面
[訪問修飾符]interface介面名
{
//介面成員定義
}
Interface IFly
{
void IFly();
}
介面只有方法、屬性、索引和事件的宣告,是用來實現的
- 介面和類的異同:
- 不同點:
- ①不能直接例項化介面
- ②介面不包含方法的實現
- ③介面可以多繼承,類只能單繼承
- ④類定義可在不同的原始檔之間進行查分
- 相同點:
- ①介面、類和結構都可以從多個介面繼承
- ②介面類似於抽象基類:繼承介面的任何非抽象型別都必須實現介面的所有成員
- 介面和類都可以包含事件、索引器、方法和屬性
- 類之間不支援多重繼承,介面之間支援。類對介面叫做實現,不叫繼承,簡單地說:類是爹,介面是能力,可以有多個能力,但是不能有多個爹
- 不同點:
- 裝箱和拆箱:
- 裝箱:將值型別轉換成引用型別
- 拆箱:將引用型別轉換成值型別
- 示例:
namespace _07裝箱和拆箱
{
class Program
{
static void Main(string[] args)
{
/// /裝箱,值型別轉賦給引用型別
//int num = 10;
//object obj = num;//將值型別轉換成引用型別
//Console.WriteLine(obj);
//Console.ReadKey();
//拆箱,引用型別轉換成值型別
int num = 10;
object obj = num;
int number=(int )obj;//將引用型別轉換成值型別
Console.WriteLine(number);
Console.ReadKey();
}
}
}
- 序列化:
- 什麼叫序列化?
- 它是一種用來處理物件流的機制,所謂物件流就是將物件的內容進行流化,流的概念說白了就是I/O。我們可以對流化後的物件進行讀寫操作,也可以將流化後的物件傳輸與網路之間,在對物件流進行讀寫操作時會引發一系列的問題,序列化機制整事用來解決這些問題的!
- 為什麼要序列化?
- 序列化是將物件狀態轉換為可保持或傳輸的格式的過程。與序列化相對的是反序列化,它將流轉換為物件。這兩個過程結合起來,可以輕鬆地儲存和傳輸資料,簡單的說:目的就是為了跨程序傳遞格式化資料。
- 注意:
- a.被序列化的物件的型別必須標記為[Serializable](該類的物件可以被序列化)
- b.當前類的所有父類也必須標記為[Serializable]
- c.這個類中的所有欄位的型別也必須是可序列化
- 二進位制序列化,加上Serializable標記BinaryFormatter類
- Serialize方法Deserialize方法
- 什麼叫序列化?
- 順序:
- a.建立流
- b.建立一個二進位制序列化器
- c.開始序列化
using System.Runtime.Serialization.Formatters.Binary;
小結
以上是我對這一部分的認識與總結,歡迎大家留言交流,互相學習!!!