摘要: 原文出处: 卡奴达摩的专栏 欢迎分享原创到伯乐头条 定义:客户端不应该依赖它不需要的接口;一个类对另一个类的依赖应该建立在最小的接口上。 问题由来:类A通过接口I依赖类B,类C通过接口I依赖类D,如果接口I对于类A和类B来说不是最小接口,则类B和类D必须去实现他们不需要的方法。 解决... 阅读全文
posted @ 2015-05-12 14:21 叕叒双又 阅读(200) 评论(0) 推荐(0) 编辑
摘要: 原文出处: 卡奴达摩的专栏 欢迎分享原创到伯乐头条 定义:高层模块不应该依赖低层模块,二者都应该依赖其抽象;抽象不应该依赖细节;细节应该依赖抽象。 问题由来:类A直接依赖类B,假如要将类A改为依赖类C,则必须通过修改类A的代码来达成。这种场景下,类A一般是高层模块,负责复杂的业务逻辑;... 阅读全文
posted @ 2015-05-12 14:20 叕叒双又 阅读(167) 评论(0) 推荐(0) 编辑
摘要: 原文出处: 卡奴达摩的专栏 欢迎分享原创到伯乐头条 肯定有不少人跟我刚看到这项原则的时候一样,对这个原则的名字充满疑惑。其实原因就是这项原则最早是在1988年,由麻省理工学院的一位姓里的女士(Barbara Liskov)提出来的。 定义1:如果对每一个类型为 T1的对象 o1,都有类... 阅读全文
posted @ 2015-05-12 14:18 叕叒双又 阅读(227) 评论(0) 推荐(0) 编辑
摘要: 原文出处: 卡奴达摩的专栏 欢迎分享原创到伯乐头条 定义:不要存在多于一个导致类变更的原因。通俗的说,即一个类只负责一项职责。 问题由来:类T负责两个不同的职责:职责P1,职责P2。当由于职责P1需求发生改变而需要修改类T时,有可能会导致原本运行正常的职责P2功能发生故障。 解决方案... 阅读全文
posted @ 2015-05-12 14:16 叕叒双又 阅读(148) 评论(0) 推荐(0) 编辑
摘要: 一、线程的概念: CPU时间片:CPU执行时间被划分成多个小片,把小片依次分配个等待执行的程序,通过这样的交替执行,实现多个线程的“同时运行”。 进程:执行中的程序叫进程,拥有自己独立的地址空间和资源,进程间不能直接共享资源。是操作系统调度的最小单位。 线程:同一个进程可以进一步分成更小的执行单... 阅读全文
posted @ 2015-04-20 17:25 叕叒双又 阅读(129) 评论(0) 推荐(1) 编辑
摘要: Java语言与其他编程语言的最大不同之处在于:java有专门的异常处理机制,实现对各类异常情况进行有效控制。 一、基本概念:异常和错误的区别与联系: (1)、定义形式不同:异常为exception;错误为error (2)、处境不同:异常主要是指哪些在程序中可能发生的,经过处理有可能回复正常的非... 阅读全文
posted @ 2015-04-16 21:48 叕叒双又 阅读(282) 评论(0) 推荐(0) 编辑
摘要: 待写 阅读全文
posted @ 2015-04-13 05:32 叕叒双又 阅读(115) 评论(0) 推荐(0) 编辑
摘要: 合成/聚合复用原则是面向对象设计对象复用的主要形式 名称:合成/复用原则(Dependence Inversion Principle)DIP 核心:要依赖抽象,不要依赖于具体实现。换言之:通过抽象(接口或抽象类)使各个类或模块的实现彼此独立,不相互影响,从而实现模块间的松散耦合。 ... 阅读全文
posted @ 2015-04-13 05:30 叕叒双又 阅读(136) 评论(0) 推荐(0) 编辑
摘要: 依赖倒置原则是面向对象设计的主要机制 名称:依赖倒置原则(Dependence Inversion Principle)DIP 核心:要依赖抽象,不要依赖于具体实现。换言之:通过抽象(接口或抽象类)使各个类或模块的实现彼此独立,不相互影响,从而实现模块间的松散耦合。 规范:(1)每个... 阅读全文
posted @ 2015-04-13 05:29 叕叒双又 阅读(122) 评论(0) 推荐(0) 编辑
摘要: 开闭原则是面向对象开发中所有设计原则的核心 名称:开闭原则(Open Closed Principle)OCP 核心:一个对象对扩展开放,对修改关闭。换言之:程序中的实体对象(模块、类、方法等)应该可以进行扩展,但不应该可以修改。对类的修改是通过增加代码实现的,而不能通过修改代码实现。 ... 阅读全文
posted @ 2015-04-12 16:55 叕叒双又 阅读(124) 评论(0) 推荐(0) 编辑
摘要: 名称:里氏替换原则(Liskov Substitution Principle)LSP 核心:在任何父类出现的地方都可用它的子类替代。换言之:子类型必须能够替换掉他们的父类型。 例子:例如我们设计一个OldCarpenter类: public class OldCarpenter{ p... 阅读全文
posted @ 2015-04-12 16:26 叕叒双又 阅读(114) 评论(0) 推荐(0) 编辑
摘要: 此系列文章主要是为新手学习面向对象编程中的架构基础,每次只有一个原则,包括名称、核心思想、例子及总结 名称:单一职责原则(Single Responsibility Principle)SRP 核心:系统中的每个对象都只应该有一个单独的职责,对象所关注的就是自身职责的完成。换言之:对一个类而言,... 阅读全文
posted @ 2015-04-12 16:23 叕叒双又 阅读(120) 评论(0) 推荐(0) 编辑
摘要: Linux中包含有一个很有用的调试工具--gdb(GNU Debuger),它可以用来调试C和C++程序,功能不亚于Windows下的许多图形界面的调试工具。 和所有常用的调试工具一样,gdb提供了以下功能: # 监视程序中变量的值 # 在程序中设置断点 # 程序的单步执行... 阅读全文
posted @ 2015-04-12 08:38 叕叒双又 阅读(185) 评论(0) 推荐(0) 编辑
摘要: 指针与函数:函数用来操作数据,改变程序的运行状态。指针用来根据地址访问变量,函数名称本身也是地址,因此你将函数和指针的结合,就能够实现将复杂数据用指针传递和用指针返回,达到动态控制函数执行流的目标。 函数和指针的结构,需要通过程序栈的作用。函数和指针的结构主要有两种方式:(1)将指针作为参数,传递给 阅读全文
posted @ 2015-04-12 08:22 叕叒双又 阅读(228) 评论(0) 推荐(0) 编辑
摘要: USCI_B0 USCI_B0 发送缓冲器UCB0TXBUF 06Fh USCI_B0 接收缓冲器UCB0RXBUF 06Eh USCI_B0 状态UCB0STAT 06Dh USCI B0 I2C 中断启用UCB0CIE 06Ch USCI_B0 位速率控制1 UCB0BR1... 阅读全文
posted @ 2015-04-11 05:51 叕叒双又 阅读(1064) 评论(0) 推荐(0) 编辑