von 余小章 's Vor 6 Jahren
1071
Mehr dazu
例:int.TryParse
由內部建立執行個體
由外部建立執行個體
不能繼承
生命週期起始於應用程式
不需要new
override 覆寫基底類別的虛擬(virtual) 成員
new 明確隱藏繼承自基底類別的成員,或稱為遮蔽
virtual 允許在衍生類別中覆寫此成員
sealed 必須一律和 override 搭配使用 其衍生類別將無法再覆寫此成員
abstract 表示為抽象成員,此成員實做不完整,在其衍生類別中必須實做其 內容
sealed 類別 : 表示密封類別,此類別無法再被繼承
abstract 表示抽象類別,不具有公開建構式
protected internal
protect
internal (命名空間預設)
private (類別預設)
public
明確轉型
隱含轉型 先 is 再 as
事件(event)
委派(delegate)
解構函數
建構函數(contructor)
屬性(property)
公開讓外部使用
靈活控制讀寫權限
set、get 方法
欄位(field)
一般而言不會公開
類別等級的全域變數
常數(constant)
編譯時期常數const
效能較好
可用在方法
數字跟字串
執行階段常數readonly
靈活性、方便性較高
任意型別
不可修改
應用程式等級的全域變數
方法(method)
方法宣告
不回傳 void
回傳 return
Plain Old CLR Object(POCO)
Plain Old Java Object(POJO)
Data Transfer Object (DTO)
序列化
只有屬性,沒有方法
物件彼此之間資料傳遞方式
3 Layer 缺點
分層無法封裝所有的東西,例如因應需求要在前端介面增加 輸入欄位,必須要在表現層、商業邏輯層、資料存取層都做 相對應的修改
不合理的分層使得不同層次的程式碼耦合在一起,相依性增加,使得程式越來越難以隨著需求變更而進行相應調整
不合理的分層將會導致軟體開發品質下降
過多的分層會影響效能
3 Layer 優點
分流
IO瓶頸
網路
記憶體
平行開發
各層之間具有一定的"獨立性",維持之間溝通的介面不變,各層可以根據具體問題各自實作,而不需要其他層也必須做出相應調整
合理的分層有助於分工開發與維護,哪一層壞了就改哪一層
可提高抽換性、可維護性、可測試性
有利於標準化
可以將各層次間的相依性減到最低
以替換某一層的具體實現,只要前後提供的服務相同即可
3 Layer 職責
資料倉儲
Text
Excel
SQL
I/O
DataAccess Layer 存取資料 Repository/Data Access/Persistence/PO/DAO
Value Object 各Layer之間的資料模型定義
Business Logic Layer 商業邏輯,流程控制
Presentatioin Layer 展現層,使用者操作介面,介面的連動效果
特設多型 (ad hoc polymorphism)
強制同型 (coercions)
多載 (overloading)
運算子多載 operator
程序多載,同一個名稱但有不同的參數
廣義多型 (universal polymorphism)
參數式多型 (parametric)
泛型
繼承式多型 (inclusion)
.NET的繼承
多個介面
只能一個類別
繼承者擁有被繼承者的行為,靜態成員除外
隱藏行為、訊息不讓外界知道
int、enum、struct、Nullable
記憶體放在stack
變數本身的內容就是物件
實作Syetem.ValueType
struct已經實作System.ValueType
反編譯int只看的到struct
使用情境:LINQ的select回傳
不需要先定義
好多名詞
組合型別
複雜型別
強型別
記憶體放在Heap
變數的內容存放記憶體位置(指標)
實作System.Object
為了穩定無法使用新技術,與業界脫節
分工細
過度分工,減弱創新力道
穀倉效應
雇主也很難把最核心的部份交給他,最後他最擅常的程式能力大約就是查詢、新增、修改、刪除。對於架構設計或是效能調校比較不擅常
透過使用案例解套
sdssdfsdfsf
Subtopic
使用者觀感不佳
打擊開發團隊,開發團隊士氣低迷
怨聲載道
資料不一致
系統不穩定
效能低落,無法優化