最近项目在重构,于是一边重构一边读经典书籍《重构》(Refactoring)。
顺手记一些东西,有些是书上的,有些是自己加的。
1、重构的目的是使软件更容易被理解和修改(准确说出我所要的),同时,不改变软件可观察的行为。
2、经常性的重构可以帮助代码维持自己该有的状态。
3、改进设计的一个重要方向就是消除重复代码。设计不良的代码往往非常臃肿并且在不同的地方使用完全相同的语句做同样的事。
4、重构代码能够使你更理解代码,随着代码的清晰,能让你看到以前看不到的设计层次上的东西。
5、重构应该随时随地的进行,你可以在添加功能、修改错误、代码复审时进行。
6、代码已经烂到无法正常工作时,重构还...
发表于2007年11月4日 10:08:00 更新于2008年3月21日 19:22:00
假定有一个父类fruit,其有几个子类分别为orange、apple,传统的情况下,如果要用fruit指针指向其几个子类来实现动态性能,必须如下代码:
其核心思想是封装创建具体子类的实现!
如下图1和图2所示。两个之间的差异是在图2的思路中在factory只是提供创建对象的接口,具体实现创建哪...
当子类很多,而且命名复杂时,我们并不确切的知道子类的名称。或者原先的我们只是在fruit类的构造函数中传递一个type,并没有派生出相应的子类而现在由于某种原因需要用到派生子类时 ,我们就可以用到Factory模式了。fruit* p=new orange();
其核心思想是封装创建具体子类的实现!
如下图1和图2所示。两个之间的差异是在图2的思路中在factory只是提供创建对象的接口,具体实现创建哪...
共2篇日志 第1/1页
分类
琐碎文字 As3&Flex RIA UG English CodingArt C++ PHP Webserver E音乐盒 Unity3d C# JS&Html5 Tools mobile golang 最近发表
- golang学习之函数/方法/接口(2022年1月6日 17:50:24)
- golang学习之零值(2022年1月6日 16:38:10)
- hello, 2018(2018年1月15日 22:47:25)
- 字体类型名词解释(2015年1月18日 11:29:14)
- 获取mysql表注释以及列注释(2014年11月13日 15:56:32)
- php连接ms sql数据库的一些问题(2014年9月15日 20:32:14)
- virtualbox虚拟网络:NAT&bridge桥接网络(2014年8月25日 22:51:35)
- php图片加水印(2014年8月15日 22:50:42)
- windows查看端口占用情况(2014年7月31日 21:19:30)
- android安卓activity生命周期(2014年7月12日 10:31:47)
最近回复