第一章 OO大智慧
今天,正式开始读王涛写的《你必须知道的.NET(第二版)》,刚开始读了序,觉得写的相当精彩,就被吸引住了。看了一会发现本书的特点可能就是以例举例,形象生动,比较期待的样子。虽然前面讲的概念性的东西,过于基础了,但是秉着有始有终的态度,要有个好的开始才有好的结尾,否则总感觉有什么东西落下了似的。
笔记
1、其中ShowType的方法为虚函数,这种在子类中实现虚函数的方式,成为方法的动态绑定,是实现面向对象的另一特性:多态的基本机制。
2、Eagle实现了接口IFlyable,这样保证了对象和行为的分离,保护了系统的完整性。
3、继承本质论:字段的创建,Chicken创建首先找到Bird,然后再找到Animal,以此类推,递归结束,最终找到Object,依次进行分配空间,最高层类排在最前面。方法表的创建,是在类第一次加载到APPDoMain时完成的,在创建方法表时只是将其附加成员TypeHandle指向方法列表在Loader Heap上的地址。Chicken创建时,首先将Bird中所有的的虚方法复制一份,然后和Chicken本身的方法列表对比,如果子类中已经复写了的,则以子类覆盖父类的虚方法。
4、面向对象的基本原则:多聚合,少继承;低耦合,高内聚。
5、适配器模式:类的适配器,是将每个类下面都继承相应的适配器,适配器统一实现接口,这样达到适配的效果;对象的适配器,是建立统一的适配器类,实现接口,在适配器类中,以聚合的方式进行对每个类的功能实现。
6、所谓的封装,就是你只有拿卡能在ATM机上取钱,你拿砖头塞不进去,拿公交卡也不识别。哈哈~~~
7、封装性告诉我们,类中的字段最好设置成Private,可通过属性进行与外界交互。这样有两点好处:一是提高了数据安全性,二是
8、反编译属性后,发现其编译后的结果就是get_属性名、set_属性名,这说明属性编译过程,就是将其变成两个相应的简单方法。
9、总结如下:
10、多态分为:基类继承式多态(IS-A)和接口实现式多态(CAN-DO)。
11、好的设计通常是面向抽象的,接口是实现这一思想的完美手段之一,高层依赖抽象,不依赖具体。接口隔离原则强调接口应该被声明为具有单一功能的小接口,而不是实现为具有多个功能的胖接口。
//好吧,今天就暂时告一段落,明天继续。
第一章 OO大智慧的更多相关文章
- 从结构和数字看OO——面向对象设计与构造第一章总结
不知不觉中,我已经接触OO五周了,顺利地完成了第一章节的学习,回顾三次编程作业,惊喜于自身在设计思路和编程习惯已有了一定的改变,下面我将从度量分析.自身Bug.互测和设计模式四个方向对自己第一章的学习 ...
- [head first 设计模式] 第一章 策略模式
[head first 设计模式] 第一章 策略模式 让我们先从一个简单的鸭子模拟器开始讲起. 假设有个简单的鸭子模拟器,游戏中会出现各种鸭子,此系统的原始设计如下,设计了一个鸭子超类,并让各种鸭子继 ...
- 《Django By Example》第一章 中文 翻译 (个人学习,渣翻)
书籍出处:https://www.packtpub.com/web-development/django-example 原作者:Antonio Melé (译者注:本人目前在杭州某家互联网公司工作, ...
- MyBatis3.2从入门到精通第一章
第一章一.引言mybatis是一个持久层框架,是apache下的顶级项目.mybatis托管到goolecode下,再后来托管到github下.(百度百科有解释)二.概述mybatis让程序将主要精力 ...
- Nova PhoneGap框架 第一章 前言
Nova PhoneGap Framework诞生于2012年11月,从第一个版本的发布到现在,这个框架经历了多个项目的考验.一直以来我们也持续更新这个框架,使其不断完善.到现在,这个框架已比较稳定了 ...
- 第一章 MYSQL的架构和历史
在读第一章的过程中,整理出来了一些重要的概念. 锁粒度 表锁(服务器实现,忽略存储引擎). 行锁(存储引擎实现,服务器没有实现). 事务的ACID概念 原子性(要么全部成功,要么全部回滚). 一致性 ...
- 第一章 Java多线程技能
1.初步了解"进程"."线程"."多线程" 说到多线程,大多都会联系到"进程"和"线程".那么这两者 ...
- 【读书笔记】《编程珠玑》第一章之位向量&位图
此书的叙述模式是借由一个具体问题来引出的一系列算法,数据结构等等方面的技巧性策略.共分三篇,基础,性能,应用.每篇涵盖数章,章内案例都非常切实棘手,解说也生动有趣. 自个呢也是头一次接触编程技巧类的书 ...
- 《JavaScript高级程序设计(第3版)》阅读总结记录第一章之JavaScript简介
前言: 为什么会想到把<JavaScript 高级程序设计(第 3 版)>总结记录呢,之前写过一篇博客,研究的轮播效果,后来又去看了<JavaScript 高级程序设计(第3版)&g ...
随机推荐
- Windows 系统下json 格式的日志文件发送到elasticsearch
Windows 系统下json 格式的日志文件发送到elasticsearch配置 Nxlog-->logstash-->ElasticSearch Logstash https://ww ...
- Busybox下mdev配置说明
[TOC] mdev说明 mdev是busybox自带的一个简化版的udev,适合嵌入式应用场合.其具有使用简单的特点.它的作用就是在系统启动和热插拔或动态加载驱动程序时,自动产生驱动程序所需要的节点 ...
- redis 五种数据结构详解(string,list,set,zset,hash)
redis 五种数据结构详解(string,list,set,zset,hash) Redis不仅仅支持简单的key-value类型的数据,同时还提供list,set,zset,hash等数据结构的存 ...
- CSS设置滚动条样式
因为在现在的大部分项目中很多都用到了滚动条,有时候用到模拟的滚动条,现在说下滚动条的CSS也能解决. 比如网易邮箱的滚动条样子很好看,就是利用的CSS来设置的,而且是webkit浏览器的.如图所示: ...
- HDU 4782 Beautiful Soup --模拟
题意: 将一些分散在各行的HTML代码整理成标签树的形式. 解法: 模拟,具体见代码的讲解. 开始没考虑 '\t' .. 代码: #include <iostream> #include ...
- Unity3D开发之搭建Mac OS开发环境
运行图 首先上几张图 IOS模拟器 坚屏 横屏 打包任务 摸索了一上午,才搞定在模拟器中运行.至于在Iphone真机中运行,虽然有开发者证书,目前还没在Xcode中配置好. 我今天第一次接触并使用MA ...
- java 20 - 8 字节流的文件复制以及汉字在计算机中的存储方式
复制文本文件:把当前目录下的FileIntputStream.java文件里面的内容复制到当前目录的b.txt文件中 分析: 数据源: FileIntputStream.java -- 读取数据 -- ...
- Android Studio系列教程二--基本设置与运行
Android Studio系列教程二--基本设置与运行 2014 年 11 月 28 日 DevTools 本文为个人原创,欢迎转载,但请务必在明显位置注明出处! 上面一篇博客,介绍了Studio的 ...
- MVC权限验证之ActionFilterAttribute
参考:http://www.cnblogs.com/waitingfor/archive/2011/12/27/2303784.html ActionFilterAttribute是Action过滤类 ...
- 如何在.net4.0中使用.net4.5的async/await
推荐文章: http://www.cnblogs.com/hj4444/p/3857771.html http://www.cnblogs.com/dozer/archive/2012/03/06/a ...