您的位置:首页 > 其它

放假第三天

2010-01-18 22:39 169 查看
昨天懒了,今天补上

读书笔记 大话设计模式3~6章

单一职责原则 就一个类而言,应该仅有一个引起它变化的原因 ,

开放关闭原则 开放关闭原则是面向对象设计的核心所在.遵循这个原则可以带来面向对象技术所声称的巨大好处,也就是可维护,可扩展,可复用,灵活性好.开发人员应该仅对程序中呈现出频繁变化的那些部分做出抽象,然而,对于应用程序中的每个部分都可以的进行抽象同样不是一个好主意,拒绝不成熟的抽象和抽象本身一样重要.

通过抽象隔离可能出现错误的代码,方便以后修正

依赖原则 A高层模块不应该以来底层模块,两个动应该依赖抽象 B 抽象不应该依赖细节,细节应该以来抽象.

里氏代换原则 一个软件实体如果使用的是一个父类的话,那么一定使用于其子类,而且它察觉不出父类对象和子类对象的区别,也就是说,在软件里面,把父类都替换成它的子类,程序行为没有变化. 子类型必须能够替换掉它们的父类型

只有当子类可以替换掉父类,软件单位的功能不受到影响时,父类才能真正被复用,而子类也能够在父类的基础上增加新的行为

装饰模式

动态的给一个对象添加一些额外的职责,就增加功能来说,装饰模式比生成子类更灵活

通过一个类将对象包装,每个装饰对象只关心自己的功能,不需要关心如何被添加到对象链中,

Person xc = new Person("小菜");
Console.WriteLine("\n第一种装扮:");
Sneakers pqx = new Sneakers();

pqx.Decorate(xc);//此时 基类中方法 是 显示小菜的装扮
pqx.Show();
//通过方法 将基类绑定到类中,然后根据需要执行基类中方法

class Person
{
public Person()
{ }

private string name;
public Person(string name)
{
this.name = name;
}

public virtual void Show()
{
Console.WriteLine("装扮的{0}", name);
}
}

class Finery : Person
{
protected Person component;
public void Decorate(Person component)
{
this.component = component;
}
public override void Show()
{
if (component != null)
{
component.Show();//base.show()
}
}
}
class Sneakers : Finery
{
public override void Show()
{
Console.Write("破球鞋 ");
base.Show();
}
}
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: