Architect Design

2020-10-22  本文已影响0人  Drew_MyINTYRE

Design-》Architect

类、方法只干一件事。

一个类应该对扩展开放,对修改关闭:
如果你需要一些额外功能,你应该扩展这个类而不是修改它,如果你需要一些额外功能,你应该扩展这个类而不是修改它。

父类最好为抽象类
子类可实现父类的非抽象方法,尽量不要覆盖重写已实现的方法
子类可写自身的方法,有自身的特性,在父类的基础上扩建
子类覆盖重写父类方法时,方法的前置条件(即方法的形参)要比父类方法的输入参数更宽松,后置条件(返回值)要更严格

一个接口应该拥有尽可能少的行为,它是精简的,也是单一的
客户端不应该依赖它所不需要的接口

高级模块不应该依赖低级模块,两者都应该依赖抽象
抽象不应该依赖于细节,细节应该依赖于抽象

public class UserManager//高层模块
{

    //我们会在一个类(高层模块)的内部实例化它依赖的对象(低层模块),
//这样势必造成两者的紧耦合,任何依赖对象的改变都将引起类的改变。
    public void ChangePassword(string username,string oldpwd,string newpwd)
    {
        EmailNotifier notifier = new EmailNotifier();//低层模块

        //add some logic and change password 
        //Notify the user
        notifier.Notify("Password was changed on "+DateTime.Now);
    }
}

我们经常说的“高内聚 松耦合”究竟什么是高内聚,什么是松耦合?

上一篇下一篇

猜你喜欢

热点阅读