• 重读 必须知道的.NET


    1 、public ,对访问成员无限制,属于访问级别最高的权限。

    protected 访问包含类或者丛类派生类的类。

    internal  仅限于程序集,

    protected inernal 访问仅限于从包含类中派生的当前程序集或类型。

    private 仅限于范文包含的类型。

    2、 多态分为四种:强制,重载,参数,包含。

    3、c#通过abstract和virtual来实现 抽象方法和虚方法,以便在子类中复写父类的方法。

    4、在.NET中多以able为接口的命名后缀,例如:INullable,ICloneable等,以I为前缀标示。

    5、.NET中通过接口实现多继承,例如: public struct DateTime : IComparable,IFormattable,Iconvertiable等。

    6、接口的本质可以被视作是:定义了抽象方法的类。仅提供了方法,具体的方法功能由实现类来完成。

    7、Iserializable序列化,序列化是将对象状态转换为可保持或传输的格式的过程。与序列化相对的是反序列化,它将流转换为对象。这两个过程结合起来,可以轻松地存储和传输数据。

    8、面向接口编程,单一小功能接口,接口并不能被实例化,没有构造函数,接口的成员被隐式声明为public。

    9、继承是类与类之间的关系。实现继承:.NET中system.object是所有类型的基类。接口继承:派生类继承了接口的方法签名。

    10、继承是可传递的,子类是对父类的扩展,必须继承父类的方法,同时可以添加新的方法。

    子类可以调用父类的方法和属性,父类不可以调用子类的方法和属性。

    虚方法如何实现覆写操作,是的父类的指针可以指向子类的对象成员。

    子类不光继承父类的公有成员,同时也继承了父类的私有成员,只是在子类中不可以访问而已。

    11、密封类不可以被继承,继承关系中,需要多加注意共有的特性,即共性。

    12、封装隐藏了类的内部实现细节。对外通过接口访问。封装是一个包装,分为内外两个空间,对内实现数据私有,对外实现方法调用,保证了数据的完整性和安全性。

    13、软件系统问题:僵化,牵一发而动全身,无法修改扩展。复杂和重复,难以理解,不可复用,不够稳定。

    14、设计模式,构建灵活可靠的系统。Proxy模式,单一原则:一个类,最好只做一件事,只有一个引起它变化的原因。

    15、软件实体对扩展是开放的,对修改是封闭的。

    16、依赖倒置原则,不要调用我们,我们会调用你。体现在:高层模块不应该依赖底层模块,二者依赖于抽象,抽象不应该依赖于具体,具体应该依赖于抽象。

    17、 对接口进行编程,不要对实现进行编程。

    18、接口隔离原则:使用多个小的专门的接口,不要使用大的接口。接口应该是内聚的,要避免“胖”接口。一个类对应另一个类的依赖应该建立在最小的接口上,不要强迫依赖不用的方法,这是一种接口污染。

    19、分离接口手段:委托分离(增加系统负担),多重继承分离。对相近的接口进行合并,会造成接口污染,实现内聚的接口才是接口设计的基本原则。

    20、liskov替换原则:是关于继承机制的应用原则。核心思想是:子类必须能够替换其基类。

    21、

    设计的分寸:

    设计原则:面向对象,面向过程,面向服务,框架,设计原则,设计模式,模式之外。

    依赖,抽象:依赖就是关系,代表了实体之间的联系,依赖可以分为:无依赖,单向依赖,双向依赖。耦合:零耦合,具体耦合,抽象耦合。

    耦合如何产生:继承,聚合,接口,方法调用和引用,服务调用。

    设计的目标是高内聚,低耦合。铭记:面向抽象编程,低耦合,高内聚,封装变化,实现重用:代码重用,算法重用。

    尽可能的实现:单向依赖,不需要进行数据交换的数据双方,不进行多余的关联。

    保持内部的封装性。

     高层模块不应该依赖于低层模块,应该依赖于抽象。

    抽象不应该依赖于具体,细节应该依赖于抽象。

    依赖倒置的核心:依赖于抽象,对接口编程,对抽象编程。

    依赖倒置的要求:少继承,多聚合,单向依赖,封装抽象,对依赖关系都应该终止于抽象类和接口。

    依赖倒置的两个弊端:对抽象编程,增加了系统的负责度和维护成本。

    具体类不存在的时候,不需要遵守依赖倒置。

    依赖注入:接口注入,构造器注入,属性注入,

  • 相关阅读:
    20170719 Mysql 配置远端Mysql访问,增加表/存储过程
    20170720 Celery 异步任务处理到Sql Server 发生死锁
    20170718 关于Mysql 安装于虚拟机Ubuntu中,内网中Windows系统无法访问
    20170712 SQL Server 日志文件收索
    SQL Server 2016 发送邮件功能
    Sql server 函数--取值年月
    SSIS--(1)
    Hadoop 尝试
    百度之星复赛T6&&hd6149 ——Valley Numer II
    百度之星复赛T5&&hdu6148
  • 原文地址:https://www.cnblogs.com/diaosizhang/p/3805207.html
Copyright © 2020-2023  润新知