重读 必须知道的.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、
设计的分寸:
设计原则:面向对象,面向过程,面向服务,框架,设计原则,设计模式,模式之外。
依赖,抽象:依赖就是关系,代表了实体之间的联系,依赖可以分为:无依赖,单向依赖,双向依赖。耦合:零耦合,具体耦合,抽象耦合。
耦合如何产生:继承,聚合,接口,方法调用和引用,服务调用。
设计的目标是高内聚,低耦合。铭记:面向抽象编程,低耦合,高内聚,封装变化,实现重用:代码重用,算法重用。
尽可能的实现:单向依赖,不需要进行数据交换的数据双方,不进行多余的关联。
保持内部的封装性。
高层模块不应该依赖于低层模块,应该依赖于抽象。
抽象不应该依赖于具体,细节应该依赖于抽象。
依赖倒置的核心:依赖于抽象,对接口编程,对抽象编程。
依赖倒置的要求:少继承,多聚合,单向依赖,封装抽象,对依赖关系都应该终止于抽象类和接口。
依赖倒置的两个弊端:对抽象编程,增加了系统的负责度和维护成本。
具体类不存在的时候,不需要遵守依赖倒置。
依赖注入:接口注入,构造器注入,属性注入,
重读 必须知道的.NET的更多相关文章
- C#刨根究底:《你必须知道的.NET》读书笔记系列
一.此书到底何方神圣? <你必须知道的.NET>来自于微软MVP—王涛(网名:AnyTao,博客园大牛之一,其博客地址为:http://anytao.cnblogs.com/)的最新技术心 ...
- (转)【推荐】初级.NET程序员,你必须知道的EF知识和经验
转自:http://www.cnblogs.com/zhaopei/p/5721789.html [推荐]初级.NET程序员,你必须知道的EF知识和经验 阅读目录 [本文已下咒.先顶后看,会涨 ...
- 《你必须知道的.NET》读书笔记一:小OO有大智慧
此篇已收录至<你必须知道的.Net>读书笔记目录贴,点击访问该目录可以获取更多内容. 一.对象 (1)出生:系统首先会在内存中分配一定的存储空间,然后初始化其附加成员,调用构造函数执行初 ...
- 《你必须知道的.NET》读书笔记二:小OO有大原则
此篇已收录至<你必须知道的.Net>读书笔记目录贴,点击访问该目录可以获取更多内容. 一.单一职责原则 (1)核心思想:一个类最好只做一件事,只有一个引起它变化的原因 (2)常用模式:Fa ...
- 《你必须知道的.NET》读书笔记三:体验OO之美
此篇已收录至<你必须知道的.Net>读书笔记目录贴,点击访问该目录可以获取更多内容. 一.依赖也是哲学 (1)本质诠释:“不要调用我们,我们会调用你” (2)依赖和耦合: ①无依赖,无耦合 ...
- 《你必须知道的.NET》读书笔记:从Hello World认识IL
通用的语言基础是.NET运行的基础,当我们对程序运行的结果有异议的时候,如何透过本质看表面,需要我们从底层来入手探索,这时候,IL便是我们必须知道的基础. 一.IL基础概念 1.1 什么是IL? IL ...
- MVC中你必须知道的13个扩展点
MVC中你必须知道的13个扩展点 pasting 转:http://www.cnblogs.com/kirinboy/archive/2009/06/01/13-asp-net-mvc-extensi ...
- 前端开发必须知道的JS(二) 闭包及应用
http://www.cnblogs.com/ljchow/archive/2010/07/06/1768749.html 在前端开发必须知道的JS(一) 原型和继承一文中说过下面写篇闭包,加之最近越 ...
- 《你必须知道的.NET》书中对OCP(开放封闭)原则的阐述
开放封闭原则(OCP,Open Closed Principle)是面向对象原则的核心.由于软件设计本身所追求的墓边就是封装变化,降低耦合,而开放封闭原则就是对这一目标的直接体现.(你必须知道的.NE ...
随机推荐
- Hadoop1.x原理
将这种单机的工作进行分拆,变成协同工作的集群,这就是分布式计算框架设计.使得计算机硬件类似于应用程序中资源池的资源,使用者无需关心资源的分配情况,从而最大化了硬件资源的使用价值.分布式计算也是如此,具 ...
- 获得某个月的天数(java, mysql, oracle)
java方式: Calendar cal = Calendar.getInstance(); cal.set(Calendar.YEAR,year); cal.set(Calendar.M ...
- REALTEK 刷机方法 法
REALTEK 是通用板最多的IC 方案之一,什么常说的2025 2270 2023 2033 2525 2545 2660 2280 2662 2670 2672 2674 2661 2668 ...
- Pandaboard ES编译bootloader、xloader、内核、以及安卓系统
Building bootloader and kernel Bootloader Startwith building the bootloader. To learn more about the ...
- linux内核体系结构
linux内核第一记 1.linux体系结构 从上图可知,Linux分为:用户空间和内核空间.内核空间和用户空间是程序执行的两种不同的状态,通过系统调用和硬件中断能够完成从用户空间到内核空间的 ...
- Android okHttp网络请求库详解
okhttp 是一个 Java 的 HTTP+SPDY 客户端开发包,同时也支持 Android.需要Android 2.3以上. 特点 OKHttp是Android版Http客户端.非常高效,支持S ...
- CentOS 6.4安装pip,CentOS安装python包管理安装工具pip的方法
CentOS 6.4安装pip,CentOS安装python包管理安装工具pip的方法如下: 截至包子写本文的时候,pip最新为 1.5.5 wget --no-check-certificate h ...
- sudo:无法解析主机 解决方案
你如果电脑中没有vim,用gedit也可以. 打开文件以后,将其中的 127.0.1.1 xxxxx xxx 替换成你电脑的自己的名字即可.
- dojo省份地市级联之地市封装类(二)
dojo省份地市级联之地市封装类 City.java: /** * 地市封装类 */ package com.you.model; import java.io.Serializable; /** * ...
- PLSQL Developer报错(一)
PLSQL Developer报错(一) 今天,我遇到了一个奇怪的问题,PLSQL Developer连接不上数据库,而且配置和数据库用户名密码都正确. 查找了半天的资料,也没有发现什么解决的办法.实 ...