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. Luogu P2888 [USACO07NOV]牛栏Cow Hurdles

    题目描述 Farmer John wants the cows to prepare for the county jumping competition, so Bessie and the gan ...

  2. mybatis 3.x源码深度解析与最佳实践(最完整原创)

    mybatis 3.x源码深度解析与最佳实践 1 环境准备 1.1 mybatis介绍以及框架源码的学习目标 1.2 本系列源码解析的方式 1.3 环境搭建 1.4 从Hello World开始 2 ...

  3. WebApi 参数绑定方法

    WebAPI 2参数绑定方法   简单类型参数 Example 1: Sending a simple parameter in the Url 01 02 03 04 05 06 07 08 09 ...

  4. java容器类分析:Collection,List,ArrayList

    1. Iterable 与 Iterator Iterable 是个接口,实现此接口使集合对象可以通过迭代器遍历自身元素. public interface Iterable<T> 修饰符 ...

  5. u盘安装ubuntu10.04 、11.04 server

    10.04 先将 ubuntu server 的 iso 放到优盘上,然后在提示无法找到光驱时,按 alt+f2 打开一个新的 console 窗口,将 iso mount 上,具体操作如下: ls ...

  6. CWnd *和HWnd转换

      CWnd *和HWnd转换 CWnd*得到HWnd CWnd    wnd;   HWND    hWnd; hWnd    =    wnd.m_hWnd;           //    or ...

  7. iframe父页面获取子页面的参数

    1.父页面中的iframe <iframe name="parentPage"></iframe> 2.子页面中元素的属性 <input type=& ...

  8. dojo CsvStore简介

    dojox.data.CsvStore 作者:Jared Jurkiewicz 版本:V1.0 CsvStore是由dojo提供的简单的只读存储,并且是包含在dojox项目中的.CsvStore是读取 ...

  9. 7.C++类与封装的概念

    类通常分为以下两部分 -类的内部具体实现 -类的外部使用方法 比如: 用户使用手机,只需要知道如何使用. 而手机开发者,则需要考虑手机内部的实现细节. 类的封装 并不是类的每个成员变量和成员函数都要对 ...

  10. 小实验3:实现haproxy的增、删、查

    # Author:Alano # -*- conding:utf-8 -*- # 这里有一个问题:为什么手动删除了haproxy_new中的内容,但是执行添加命令的时候依然显示数据已经存在? f = ...