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. Hadoop1.x原理

    将这种单机的工作进行分拆,变成协同工作的集群,这就是分布式计算框架设计.使得计算机硬件类似于应用程序中资源池的资源,使用者无需关心资源的分配情况,从而最大化了硬件资源的使用价值.分布式计算也是如此,具 ...

  2. 获得某个月的天数(java, mysql, oracle)

    java方式: Calendar   cal   =   Calendar.getInstance(); cal.set(Calendar.YEAR,year); cal.set(Calendar.M ...

  3. REALTEK 刷机方法 法

    REALTEK 是通用板最多的IC 方案之一,什么常说的2025 2270 2023 2033 2525 2545 2660 2280 2662 2670 2672 2674  2661  2668 ...

  4. Pandaboard ES编译bootloader、xloader、内核、以及安卓系统

    Building bootloader and kernel Bootloader Startwith building the bootloader. To learn more about the ...

  5. linux内核体系结构

    linux内核第一记   1.linux体系结构   从上图可知,Linux分为:用户空间和内核空间.内核空间和用户空间是程序执行的两种不同的状态,通过系统调用和硬件中断能够完成从用户空间到内核空间的 ...

  6. Android okHttp网络请求库详解

    okhttp 是一个 Java 的 HTTP+SPDY 客户端开发包,同时也支持 Android.需要Android 2.3以上. 特点 OKHttp是Android版Http客户端.非常高效,支持S ...

  7. CentOS 6.4安装pip,CentOS安装python包管理安装工具pip的方法

    CentOS 6.4安装pip,CentOS安装python包管理安装工具pip的方法如下: 截至包子写本文的时候,pip最新为 1.5.5 wget --no-check-certificate h ...

  8. sudo:无法解析主机 解决方案

    你如果电脑中没有vim,用gedit也可以. 打开文件以后,将其中的 127.0.1.1  xxxxx xxx 替换成你电脑的自己的名字即可.

  9. dojo省份地市级联之地市封装类(二)

    dojo省份地市级联之地市封装类 City.java: /** * 地市封装类 */ package com.you.model; import java.io.Serializable; /** * ...

  10. PLSQL Developer报错(一)

    PLSQL Developer报错(一) 今天,我遇到了一个奇怪的问题,PLSQL Developer连接不上数据库,而且配置和数据库用户名密码都正确. 查找了半天的资料,也没有发现什么解决的办法.实 ...