花绕月
花开人间自凋零,绕在心间却有情。月冷风清心若冰,我断凄愁魂犹明。
摘要: 单一职责原则(SRP)就一个类而言,应该仅有一个引起它变化的原因。一个类承担的职责过多,相当于把这些职责耦合在一起,一个职责的变化可能会削弱或抑制这个类完成其他职责的能力。这种耦合会导致脆弱的设计。软件设计真正要做的许多内容,就是发现职责并把那些职责相互分离。如果你能够想到多于一个的动机去改变一个类,那么这个类就具有多于一个的职责。开放--封闭原则(OCP)对扩展开放,对修改封闭面对需求的改变却可... 阅读全文
posted @ 2010-05-20 09:20 花绕月 阅读(333) 评论(0) 推荐(1) 编辑
摘要: 策略模式(Strategy)  它定义了算法家族,分别封装起来,让它们之间可以互相替换,此模式让算法的变化,不会影响到使用算法的客户。  感觉策略模式和工厂模式的思想是类似的,工厂模式把在不同情况下创建对象的步骤抽象成类,策略模式把不同的算法实现抽象出来,策略类似一个管理算法的工厂。  简单工厂模式与策略模式  现金收费抽象类:  正常收费子类:  打折收费子类:  返利收费子类:  CashCo... 阅读全文
posted @ 2010-05-16 13:47 花绕月 阅读(239) 评论(1) 推荐(0) 编辑
摘要: 简单工厂模式  业务和界面分离 阅读全文
posted @ 2010-05-14 09:16 花绕月 阅读(217) 评论(0) 推荐(0) 编辑
摘要: 隐式公共方法:方法以及属性都只是声明而不包含代码体。  接口是把隐式公共方法和属性组合起来,以封装特定功能的一个集合。  声明接口不允许提供接口中任何成员的执行方式。  接口不能有构造方法和字段。  实现接口的类就必须要实现接口中的所有方法和属性。  接口的命名,前面要加一个大写字母‘I’。  一个类智能继承一个抽象类,却可以实现多个接口。  敏捷开发的思想,通过重构改善既... 阅读全文
posted @ 2010-05-12 18:46 花绕月 阅读(207) 评论(0) 推荐(0) 编辑
摘要: 精彩的代码是如何想出来的,要比看到精彩的代码更加令人期待。 如果想成为一名更优秀的软件设计师,了解优秀软件设计的演变过程比学习优秀设计本身更有价值,因为设计的演变过程中蕴藏着大智慧。 通过这些模式让你找到“封装变化”、“对象间松散耦合”、“针对接口编程”的感觉,从而设计出易维护、易扩展、易复用、灵活性好的程序。 对象是一个自包含的实体,用一组可识别的特性和行为来标识。 自包含----自身包含了自... 阅读全文
posted @ 2010-05-11 16:16 花绕月 阅读(244) 评论(0) 推荐(0) 编辑
摘要: 这几天在写一个解释器,用的语言是C语言,环境是VXWORKS 6.7。由于源语言是我自己定义的,有时便会为了方便写解释器而回去修改源语言的语法。最后经过整理,设定源语言每行的第一个单词,标识这条语句的类型。 因此在写解释器的时候,就可以根据每行扫描到的首个单词来决定到底是用哪一个子函数来解析。这就需要在解释器中用C语言实现动态选择函数入口。 首先理顺一下思路,源程序读入到内存后(可以全部读入也可以... 阅读全文
posted @ 2010-04-28 16:08 花绕月 阅读(1639) 评论(0) 推荐(0) 编辑
摘要: Tornado编程工具下有大量的现成的交叉编译器,有时候我们写程序的时候可能要完成编译→下装这样的工作。这类工作在项目中通常是要自动化起来,即自动化编译。其实这类工作我们可以让Tornado来帮我们实现。要完成自动化编译,最重要的两个要素一是找到合适的编译器,一是要有一个正确的makefile。makefile的问题好解决,首先我们在Tornado下建立一个项目: 然后,填写相关信息:L... 阅读全文
posted @ 2010-04-26 10:26 花绕月 阅读(2862) 评论(0) 推荐(0) 编辑