摘要: 阅读全文
decorator装饰
2007-09-01 22:47 by buru, 146 阅读, 0 推荐, 收藏,
摘要:当我们想扩展一个类的功能的时候: 用接口;---每增加一个功能就会增加一个子类.导致子类膨胀. 解决方法: 动机 强类型语言下的设计模式.由于继承为类型引入静态特质,使得这种扩展方式缺乏灵活性.如何根据需要动态(在运行时)的实现,同时避免扩展功能增多带来子类膨胀? 意图:动态地灵活地给一个对象增加额外的职责. 怎么做的: 把要扩增功能的类的抽象类作为参数传到新的抽象类中,并作为新类的私有成... 阅读全文
zz IE和Firefox在JavaScript方面的兼容性
2007-08-28 17:53 by buru, 232 阅读, 0 推荐, 收藏,
摘要:1.document.formName.item("itemName") 问题 说明:IE下,可以使用document.formName.item("itemName")或document.formName.elements["elementName"];Fir... 阅读全文
Bridge学习笔记
2007-08-27 21:35 by buru, 200 阅读, 0 推荐, 收藏,
摘要:精神: 抽象不应该依赖于实现细节,实现细节应该依赖于抽象. 只要是面向对象语言,组合一定必继承好. 另外一种变化原因:平台的变化 比如 PC上以及手机Tank游戏的图形绘制,生效,操作等实现完全不同.怎么办? 放在一个动态的环境中做软件设计. 动机: 思考,事实上Tank类的固有逻辑,使tank有两个变化的维度---平台变化,型号变化. 如何应对? 意图:抽象部分与现实部分分离,使它们都可以独... 阅读全文
Adapter
2007-08-20 00:04 by buru, 200 阅读, 0 推荐, 收藏,
摘要:动机:应对迁移的变化意图:使原本由于接口不能兼容在一起工作的类通过适配器能一起工作; 对象适配器:类适配器:不推荐 不良高耦合---------------所以------要求尽可能使用面向接口编程 才好适配.-------------------------在.net framwork中1.com对象通过tlbimp.exe创建rcw (runtime callable wrapper)来适配... 阅读全文
reflactor--function--Inline Method
2007-08-19 12:29 by buru, 178 阅读, 0 推荐, 收藏,
摘要:1.当某个函数的内部代码和函数名一样清晰易读或经过重构以后使得其内容和其名称一样清晰时用到.2.Rplace Method with Method Object 之前先将一群组织不合理的函数inline到一个大型函数中.再从中提炼组织. 有时候将一个大型函数作为整体来移动会比教简单.3.当太多间接层时都delegation某个函数,使得在这之间晕头转向时用到.4.how to do:检查确定不... 阅读全文
重构1:Extract Method提炼函数
2007-08-13 23:13 by buru, 223 阅读, 0 推荐, 收藏,
摘要:1.创建一个新函数,根据这个函数的意图来给他命名,而不是以它怎样做命名..--->注意本重构的目的就是用来代替注释的,所以想不出好名字,就别动.2.注意有局部变量的情况: 原函数声明的变量.+传进去的参数.原函数声明变量若只是赋了个初值,可以转移到新函数中. 阅读全文
protoype 笔记
2007-08-13 22:48 by buru, 200 阅读, 0 推荐, 收藏,
摘要:1.导言:about oo抽象不应该依赖于实现细节,实现细节应该依赖于抽象.比如 人--->水杯 | | 陶瓷水杯2.浅克隆只能克隆原对象的值类型成员,对于引用类型,只会克隆它的引用地址.deepcopy才是完全copy一个... 阅读全文
Factory Method
2007-08-12 11:48 by buru, 184 阅读, 0 推荐, 收藏,
摘要:-----概论.导言.1.耦合关系:决定软件面对变化时的行为.模块之间紧耦合-->随变化,相关模块都变更.模块之间松耦合--->随变化,一些模块更容易变更.其他不变.抽象部分变化慢,细节变化快.要了解模块之间的关系,再运用设计模式.运用设计模式是有成本的.2.解决那个方向上的问题,就是运用了那种模式. 3.对象经常面临变化,但拥有比较稳定的接口. 意图:(from gof)..定义一个用于对象... 阅读全文
学习笔记 关于refactorying
2007-08-11 20:17 by buru, 236 阅读, 0 推荐, 收藏,
摘要:1.何时不该重构:现有代码根本不能正常工作.在重构之前,代码必须起码在大部分情况下正常运作./或者:折衷的办法,拆成封装良好的小型组件,然后"各个击破",决定重构 or 重建.在项目的最后期限,应该避免.在最后才重构,通常意味着其实你早该进行重构了.-------------------------------- 2.重构与设计:作软件!=设计+编程.另,xp的主持者认为重构可以代替设计. 设计一... 阅读全文
浙公网安备 33010602011771号