C#面向对象设计模式第一讲:面向对象设计模式与原则

(根据MSDN Webcast相关课程整理)

模式:提供重复发生的问题的解决方法的核心。

设计模式:软件设计过程中某一类问题的一般性解决方案。

面向对象设计模式:面向对象设计过程中、特定场景下,类与相互通信的之间的常见的组织关系。

GOF 23种设计模式

好的设计:可以满足应对变化提高复用的设计。

源代码就是设计,软件设计最大的特点就是需求永远在变化。

理想化的软件开发模式:软件开发=系统设计(设计师)+代码编写(程序员)

设计模式不是算法技巧,不能照搬照用,只能活学活用,必须理解。

即使懂面向对象的语言机制,但如果理解不深入,也并不一定能运用到实际设计与开发中去。

(OOPL)面向对象三大实现机制:

封装:隐藏内部实现

继承:复用

多态:改写对象行为

C#面向对象设计模式第一讲:面向对象设计模式与原则_第1张图片

新增一个员工类型而不需要修改原来的设计,只需要扩展一个工厂类中的方法。

扩展:新增一个功能,不修改原来的设计

改变:修改原来的设计

代码耦合:就是代码关系过于紧密,往往改变一小段代码,需要整个项目做很大的改动。在实际开发中应该尽量避免过高的耦合。接口、继承是解决高耦合的一种好方法。

对象封装了行为与状态即代码与数据。

面向对象设计三大原则:

1,针对接口编程而不是针对实现编程;

2,优先使用对象组合而不是类继承(is of关系);

3,封装变化点;

使用设计模式的正确方法:针对变化点,使用重构来得到模式而不是一步到位的应用所谓的模式

几条更具体的设计原则:

1, 单一职责原则(SRP):一个类应该只有一个引起它变化的原因

File类,FileInfor类

2, 开放封闭原则(OCP):类模式应该是可扩展的,但是不可修改的(对扩展开放,对更改封闭,尽可能新增)

3, Liskov替换原则(LSP):子类必须能替换它们的基类

4, 依赖倒置原则(DIP):高层模式不应该依赖于低层模块,二者应该依赖于抽象;抽象不应该依赖于实现细节,实现细节应该依赖于抽象

5, 接口隔离原则(ISP):不应该强迫客户程序依赖于它们不用的方法

接口与抽象类的区别:

接口是一份契约

抽象类提供一个框架

<完>

你可能感兴趣的:(C#面向对象设计模式第一讲:面向对象设计模式与原则)