C#面向对象设计模式纵横谈(1):面向对象设计模式与原则
没有个模式描述了一个在我们周围不断重复发生的问题,以及该问题的解决方案的核心。
——Christopher Alexander
设计模式描述了软件设计过程中某一类常见问题的一般性解决方案。
面向对象设计模式描述了面向对象设计过程中、特定场景下、类与相互通信的对象之间常见的组织关系。
从设计原则到设计模式
针对接口编程,而不是针对实现编程
客户无须知道所使用对象的特定类型,只需要知道对象拥有客户所期望的接口
优先使用对象组合而不是类继承
类继承通常为“白箱复用”,对象组合通常为“黑箱复用”。继承在某种程度上破坏了封装性,子类父类耦合度高;而对象组合则只要求被组合的对象具有良好定义的接口,耦合度低。
封装变化点
使用封装来创建对象之间的分界层,让设计者可以在分界层的一侧进行修改,而不会对另一侧产生不良的影响,从而实现层次间的松耦合。
使用重构得到模式——设计模式的应用不易先入为主,一上来就使用设计模式是对设计模式的最大误用。没有一步到位的设计模式。敏捷软件开发实践提倡的“Refactoring to Patterns”是目前普遍公认的最好的使用设计模式的方法。
abstract class Employee
{
public abstract int GetSalary();
}
class Sales:Employee
{
public override int GetSalary();
}
class Engineer:Employee
{
public override int GetSalary();
}
//显示工资程序
Employee e =emFactory.GetEmployee(id);
MessageBox.Show(e.GetSalary());


浙公网安备 33010602011771号