文章列表
前段时间读过martin fowler的《重构
,改善既有代码的设计
》,不禁感叹:他老人家绝对对得起大师这个名号啊!对于入行不久的程序员来说,读这本书对提高代码质量肯定有帮助。就重构这个话题,还和部门同事做了次交流,将交流时的文档整理在此仅作备忘。
软件的成本
N
年前,
Yourdon
和
Constantine
在
Structured Design
一书中将经济学作为了软件设计的底层驱动力,软件设计应该致力于减少整体成本。
COST
total
=
COST
...
什么是设计模式?
GOF这样定义模式:模式就是表示特定情境、问题、与方案之间的关系。
那设计模式是什么呢?
设计模式(Design pattern)是一套被反复使用、多数人知晓的、经过分类编目的、代码设计经验的总结。使用设计模式是为了可重用代码、让代码更容易被他人理解、保证代码可靠性。GoF(“四人帮”,指Gamma, Helm, Johnson & Vlissides, Addison-Wesley四人)的《设计模式》(1995年出版)是第一次将设计模式提升到理论高度,并将之规范化,本书提出了23种基本设计模式,自此,在可复用面向对象软件的发展过程中,新的大量的设计模式不断出现。 ...
什么是代理模式?
为其他对象提供一种代理以控制对这个对象的访问.说白了,对应到现实生活中就是:某人想做一件事,但是不想或不能直接去做,这时候就需要找个人来替他做这件事。
代理模式一般涉及到三个角色: ...
java不像C++那样需要显示的分配和释放内存,对java程序员是一种解放,很大程度降低了编程的难度,因为内存管理的工作都交由jvm来自动进行。但是jvm自动管理内存也是一把双刃剑,会造成宝贵的内存资源浪费,搞不好还会造成内存泄露。所以,最为一名java程序员需要对jvm管理内存的机制进行深入了解,才能更好的利用内存。
内存空间的划分
Sun JDK也是遵照jvm规范,将内存空间划分为方法区、堆、本地方法栈、pc寄存器、jvm方法栈。如下图:
方法区
方法区存放了要加载的类的信息、类中的静态变量、类中定义为final类型的常量、类中的field信息 ...
什么是command模式?
GOF 在《设计模式》一书中阐述其意图:“将一个请求封装为一个对象,从而使你可用不同的请求对客户进行参数化;对请求排队或记录请求日志,以及支持可取消的操作。”这里所谓的“不同的请求”也既意味着请求可能发生的变化,是一个可能扩展的功能点。
uml类图:
有趣的例子
《设计模式的有趣解释-追MM》中解释:Command—俺有一个mm家里管得特别严,没法见面,只好借助于她弟弟在我们俩之间传送信息,她对我有什么指示,就写一张纸条让她弟弟带给我。这不,她弟弟又传送过来一个command,为了感谢他,我请他吃了碗杂酱面,哪知道他说:“我同时给我姐姐三个男 ...