1. 程式人生 > >C#基礎之 二十 設計模式之簡單工廠模式及介面

C#基礎之 二十 設計模式之簡單工廠模式及介面

前言

      這幾天看了這些視訊進行了一些總結,我是打算先看完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;

小結

      以上是我對這一部分的認識與總結,歡迎大家留言交流,互相學習!!!