“软件设计”文章列表
一、开篇
本文主要是讲述设计模式中最经典的创建型模式-工厂模式,本文将会从以下几点对工厂模式进行阐述。 本文将会从上面的四个方面进行详细的讲解和说明,......
我在阅读遗留代码时,经常发现存在这样一种情形。在一个类中存在两个方法,它们做了相似的工作,区别仅在于方法内部某些对象的类型。例如:
Code highlighti......
在开发过程中,当你发现代码可以Copy-paste时,就意味着代码出现了重复。这是一种典型的反模式。William J.Brown等在著作AntiPatterns-Refactoring Software,Archi......
类层次结构的变化
类层次结构中可能经常由于引入新的操作,从而将类型变得脆弱……
动机(Motivation)
在软件构建过程中,由于需求的改变......
任何一位在两个领域里——本地应用程序和Web应用程序——都做过长期开发的人都会告诉你,web应用开发和传统的应用开发有很大的不同。这指的......
一些评论员写下了敏捷实施中一些常见错误和反模式。他们贴出了“Top X”列表,列出了需要避免的事项和他们曾在各种组织实现敏捷时见过的错误。
Ta......
对象状态影响对象行为
对象拥有不同的状态,往往会行使不同的行为……
动机(Motivation)
在软件构建过程中,某些对象的状态如果改变,其......
算法与对象的耦合
对象可能经常需要使用多种不同的算法,但是如果变化频繁,会将类型变得脆弱……
动机(Motivation)
在软件构建过程中,......
这是一个经常被问到的问题,问的理所当然。作为一个程序员,为什么我就非要被认为知道如何开发Web应用程序呢?这个问题没有一个简单的答案,甚至那些教育机构都未必......
每一个模式描述了一个在我们周围不断重复发生的问题,以及该问题的解决方案的核心
——Christopher Alexander
设计模式描述了软件设计过程中某......
前言
最近几年在.net方面的工作经历,让我长久以来(有几年了)想写关于大型asp.net应用系统架构文章的念头。之前和同事们聊天的时候说的都是一些思维片段,其中......
最近学习Django中,在看limodou的Django Step by Step,不过自己随便写写还是碰到了挺多问题,不过貌似都是比较常见,还能顺利解决。现在写下来,也许以后会忘记,也......
依赖关系的倒置
抽象不应该依赖于实现细节,实现细节应该依赖于抽象。-抽象A直接依赖于实现细节b(软件易脆,很容易需要重新编译)
-抽象A依赖于抽象B,实......
从耦合关系谈起
耦合关系直接决定着软件面对变化时的行为
-模块与模块之间的紧耦合使得软件面对变化时,相关模块都要随之更改
-模块与模块之间的松......
适配(转换)的概念无处不在
适配,即在不改变原有实现的基础上,将原先不兼容的接口转换为兼容的接口。
动机(Motivation)
在软件系统中,由于应用环境......
抽象与实现
抽象不应该依赖于实现细节,实现细节应该依赖于抽象。
问题在于如果抽象B由于固有的原因,本身并不稳定,也有可能变化,怎么办?
举例来说
......
对象容器的问题
在面向对象系统中,我们常会遇到一类具有“容器”特征的对象——即它们在充当对象的同时,又是其他对象的容器。
如......
子类复子类,子类何其多
假如我们需要为游戏中开发一种坦克,除了各种不同的型号的坦克外,我们还希望在不同场合中为其增加以下一种或多种功能:比如红外线夜视......
系统的复杂度
假设我们需要开发一个坦克模拟系统用于模拟坦克车在各种作战环境中的行为,其中坦克系统由引擎、控制器、车轮、车身等各子系统构成。
如何使......
面向对象的代价
面向对象很好地解决了系统抽象性的问题,同时在大多数情况下,也不会损及系统的性能。但是,在某些特殊的应用中,由于对象的数量太大,采用面向对......