当前排序:阅读数 按发布时间
子类复子类,子类何其多
假如我们需要为游戏中开发一种坦克,除了各种不同的型号的坦克外,我们还希望在不同场合中为其增加以下一种或多种功能:比如红外线夜视......
动机(Motivation)
在软件构建过程中,如果某一特定领域的问题比较复杂,类似的模式不断重复出现,如果使用普通的编程方式来实现将面临非常频繁的变化。在这种情......
对象和数据的主要差别就是对象有行为,行为可以看成责任职责(responsibilities以下简称职责)的一种,理解职责是实现好的OO设计的关键。“Understanding responsibilities is key to good object-oriented design”—Mart...
接缝(seam)是Michael C. Feathers提出的概念。Feathers在Working Effectively with Legacy Code一书中对接缝的定义如下:
接缝,顾名思义,就是指程序中的一些......
对象容器的问题
在面向对象系统中,我们常会遇到一类具有“容器”特征的对象——即它们在充当对象的同时,又是其他对象的容器。
如......
最近常有一种说法,就是我们如今面临着另外一场编程模型的变革,面向对象技术已经处在被淘汰的边缘,函数式语言会取代面向对象技术成为主流方式,甚至出现了面向对......
从耦合关系谈起
耦合关系直接决定着软件面对变化时的行为
-模块与模块之间的紧耦合使得软件面对变化时,相关模块都要随之更改
-模块与模块之间的松......
系统的复杂度
假设我们需要开发一个坦克模拟系统用于模拟坦克车在各种作战环境中的行为,其中坦克系统由引擎、控制器、车轮、车身等各子系统构成。
如何使......
new的问题
常规的对象创建方法:
new的问题:-实现依赖,不能应对“具体实例化类型”的变化
解决思路:
-封装变化点——哪里变......
无处不在的Template Method
如果你只想掌握一种设计模式,那么它就是
-----Template Method!
变与不变
变化——是软件设计的永......
每一个模式描述了一个在我们周围不断重复发生的问题,以及该问题的解决方案的核心
——Christopher Alexander
设计模式描述了软件设计过程中某......
之前写过一篇如果你也是.NET程序员,收到不少留言,各种意见都有,之前的说话方式不够友好,特此向因看过而心生郁闷的人道歉。
问题在于我为什么不停的提面向对象......
集合内部结构与外部访问
动机(Motivation)
在软件构建过程中,集合对象内部结构常常变化各异。但对于这些集合对象,我们希望在不暴露其内部结构的同时,可......
面试的时候被问到几次python的OOP都挂了,决定认真的学一遍~~
python的面向对象的设计和c++等编译语言不同,主要注意的是:
python的类没有访问权限的问题,......
我一直强调对象是自治的,这意味着它应该拥有能表达自身对象特性的数据与行为,对自己的数据与状态负责,对于该数据而言,对象是自给自足的。对象的自治体现了OO最......