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、

设计的分寸:

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

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

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

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

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

保持内部的封装性。

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

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

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

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

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

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

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

重读 必须知道的.NET的更多相关文章

  1. C#刨根究底:《你必须知道的.NET》读书笔记系列

    一.此书到底何方神圣? <你必须知道的.NET>来自于微软MVP—王涛(网名:AnyTao,博客园大牛之一,其博客地址为:http://anytao.cnblogs.com/)的最新技术心 ...

  2. (转)【推荐】初级.NET程序员,你必须知道的EF知识和经验

    转自:http://www.cnblogs.com/zhaopei/p/5721789.html [推荐]初级.NET程序员,你必须知道的EF知识和经验   阅读目录   [本文已下咒.先顶后看,会涨 ...

  3. 《你必须知道的.NET》读书笔记一:小OO有大智慧

    此篇已收录至<你必须知道的.Net>读书笔记目录贴,点击访问该目录可以获取更多内容. 一.对象  (1)出生:系统首先会在内存中分配一定的存储空间,然后初始化其附加成员,调用构造函数执行初 ...

  4. 《你必须知道的.NET》读书笔记二:小OO有大原则

    此篇已收录至<你必须知道的.Net>读书笔记目录贴,点击访问该目录可以获取更多内容. 一.单一职责原则 (1)核心思想:一个类最好只做一件事,只有一个引起它变化的原因 (2)常用模式:Fa ...

  5. 《你必须知道的.NET》读书笔记三:体验OO之美

    此篇已收录至<你必须知道的.Net>读书笔记目录贴,点击访问该目录可以获取更多内容. 一.依赖也是哲学 (1)本质诠释:“不要调用我们,我们会调用你” (2)依赖和耦合: ①无依赖,无耦合 ...

  6. 《你必须知道的.NET》读书笔记:从Hello World认识IL

    通用的语言基础是.NET运行的基础,当我们对程序运行的结果有异议的时候,如何透过本质看表面,需要我们从底层来入手探索,这时候,IL便是我们必须知道的基础. 一.IL基础概念 1.1 什么是IL? IL ...

  7. MVC中你必须知道的13个扩展点

    MVC中你必须知道的13个扩展点 pasting 转:http://www.cnblogs.com/kirinboy/archive/2009/06/01/13-asp-net-mvc-extensi ...

  8. 前端开发必须知道的JS(二) 闭包及应用

    http://www.cnblogs.com/ljchow/archive/2010/07/06/1768749.html 在前端开发必须知道的JS(一) 原型和继承一文中说过下面写篇闭包,加之最近越 ...

  9. 《你必须知道的.NET》书中对OCP(开放封闭)原则的阐述

    开放封闭原则(OCP,Open Closed Principle)是面向对象原则的核心.由于软件设计本身所追求的墓边就是封装变化,降低耦合,而开放封闭原则就是对这一目标的直接体现.(你必须知道的.NE ...

随机推荐

  1. galera断电后无法重建集群

    节点有一个测试环境,数据库用的三节点galera,测试组的同事把电源同时断了.节后回来开机,发现数据库状态一直有问题,以前遇到这种情况,都是把一个节点中的my.conf中的wsrep配置全删掉,作为一 ...

  2. SpringMVC的数据转换,格式化和数据校验

          在SpringMVC中,根据请求方法签名不同,将请求消息中的消息以一定的方式转换并绑定到请求方法的参数中,在请求信息到达真正调用处理方法的这一段时间内,SpringMVC还会完成很多其他的 ...

  3. java并发编程笔记3-同步容器&并发容器&闭锁&栅栏&信号量

    一.同步容器: 1.Vector容器实现了List接口,Vector实际上就是一个数组,和ArrayList类似,但是Vector中的方法都是synchronized方法,即进行了同步措施.保证了线程 ...

  4. 【前端】Angular2 Ionic2 学习记录

    转载请注明出处:http://www.cnblogs.com/shamoyuu/p/angular2_ionic2.html 一.建立项目 ionic start ProductName super ...

  5. ssh (Spring , Struts2 , Hibernate)框架的配置使用

    思维导图(基本配置) 1. 需要引入的包 2 .spring-config.xml 的配置 <!-- 链接数据库 外部配置文件扫入 --> <context:property-ove ...

  6. 重温.NET下Assembly的加载过程

    最近在工作中牵涉到了.NET下的一个古老的问题:Assembly的加载过程.虽然网上有很多文章介绍这部分内容,很多文章也是很久以前就已经出现了,但阅读之后发现,并没能解决我的问题,有些点写的不是特别详 ...

  7. 笔记︱集成学习Ensemble Learning与树模型、Bagging 和 Boosting

    本杂记摘录自文章<开发 | 为什么说集成学习模型是金融风控新的杀手锏?> 基本内容与分类见上述思维导图. . . 一.机器学习元算法 随机森林:决策树+bagging=随机森林 梯度提升树 ...

  8. vxworks下文件读写示例

    dev 1.create file on floopy disk and write contents: -> pdev=fdDevCreate(0,0,0,0)     /* A:,1.44M ...

  9. 大数据处理的三种框架:Storm,Spark和Samza

    许多分布式计算系统都可以实时或接近实时地处理大数据流.下面对三种Apache框架分别进行简单介绍,然后尝试快速.高度概述其异同. Apache Storm 在Storm中,先要设计一个用于实时计算的图 ...

  10. Excel 2010高级应用-面积图(三)

    Excel 2010高级应用-面积图(三) 操作过程如下: 1.新建Excel空白文档,重新命名为面积图 2.单击"插入",找到面积图图样 3.选择其中一种类型的面积图,单击并在空 ...