??xml version="1.0" encoding="utf-8" standalone="yes"?>国产专区在线播放,日韩av综合,日韩午夜免费http://www.aygfsteel.com/selina/category/1192.html<hr> <div align="center"><a href="http://www.aygfsteel.com/selina/">..::[Selina ?AlleNny]::..</a></div> <br> Sunny day with the rain together<br> 像苦与甜交织的景?lt;br> 春天的花冬天的寒?lt;br> 都是色彩~纷的h?lt;br> <br> Sunny day with the rain together<br> 旉转动着古老的~(sh)<br> 黑暗的夜明亮的早?lt;br> 那都是我们丰盛的旅程<br> <br> <div align="center"><a >Turn Left Turn Right</a></div>zh-cnFri, 02 Mar 2007 03:36:18 GMTFri, 02 Mar 2007 03:36:18 GMT60写javaE序最Ҏ(gu)犯的21U错?lt;转蝲>http://www.aygfsteel.com/selina/articles/34619.htmlSelinaSelinaFri, 10 Mar 2006 02:49:00 GMThttp://www.aygfsteel.com/selina/articles/34619.htmlhttp://www.aygfsteel.com/selina/comments/34619.htmlhttp://www.aygfsteel.com/selina/articles/34619.html#Feedback0http://www.aygfsteel.com/selina/comments/commentRss/34619.htmlhttp://www.aygfsteel.com/selina/services/trackbacks/34619.html 代码重复几乎是最常见的异味了(jin)。他也是Refactoring 的主要目标之一。代码重复往往来自于copy-and-paste 的编E风根{与他相对应OAOO 是一个好pȝ的重要标志(请参见:(x)http://www.erptao.org/download.php?op=viewsdownload&sid=6Q?
2QLong method
它是传统l构化的“遗毒“。一个方法应当具有自我独立的意图Q不要把几个意图攑֜一P我的《大cd长方法》一文中有详l描q?
3QLarge Class
大类是你把太多的责Ml了(jin)一个类。这里的规则是One Class One Responsibility?
4QDivergent Change
一个类里面的内容变化率不同。某些状态一个小时变?sh)ơ,某些则几个月一q才变(sh)ơ;某些状态因斚w的原因发生变化,而另一些则因ؓ(f)其他斚w的原因变?sh)ơ。面向对象的抽象是把相对不变的和相对变化相隔离。把问题变化的一斚w和另一斚w盔RR这使得q些相对不变的可以重用。问题变化的每个斚w都可以单独重用。这U相异变化的共存?sh)得重用非常困难?
5QShotgun Surgery
q正好和上面相反。对pȝ一个地方的改变涉及(qing)到其他许多地方的相关改变。这些变化率和变化内容相似的状态和行ؓ(f)通常应当攑֜同一个类中?
6QFeature Envy
对象的目的就是封装状态以?qing)与q些状态紧密相关的行ؓ(f)。如果一个类的方法频J用get Ҏ(gu)存取其他cȝ状态进行计,那么你要考虑把行为移到涉?qing)状态数目最多的那个cR?
7QData Clumps
某些数据通常像孩子一h玩耍:(x)一起出现在很多cȝ成员变量中,一起出现在许多Ҏ(gu)的参C?.Q这些数据或许应该自q立Ş成对象?
8QPrimitive Obsession
面向对象的新手通常?fn)惯使用几个原始cd的数据来表示一个概c(din)譬如对于范_(d)他们?x)用两个数字。对于MoneyQ他们会(x)用一个QҎ(gu)来表C。因Z没有使用对象来表N题(sh)存在的概念,q得代码变的难以理解,解决问题的难度大大增加? 好的?fn)惯是扩充语a所能提供原始类型,用小对象来表C围、金额、{化率、邮政编码等{?
9QSwitch Statement
Z帔R的开兌句是OO 的大敌,你应当把他变?sh)子cRstate 或strategy?
10QParallel Inheritance Hierarchies
q行的承层ơ是shotgun surgery 的特D情c(din)因为当你改变(sh)个层ơ中的某一个类Ӟ你必d时改变另外一个层ơ的q行子类?
11QLazy Class
一个干zM多的cR类的维护需要额外的开销Q如果一个类承担?jin)太的责QQ应当消除它?
12QSpeculative Generality
一个类实现?jin)从未用到的功能和通用性。通常q样的类或方法唯一的用htestcase。不要犹豫,删除它?
13QTemporary Field
一个对象的属性可能只在某些情况下才有意义。这L(fng)代码难以理解。专门徏立一个对象来持有q样的孤儿属性,把只和他相关的行为移到该cR最常见的是一个特定的法需要某些只有该法才有用的变量?
14QMessage Chain
消息铑֏生于当一个客户向一个对象要求另一个对象,然后客户又向q另一对象要求另一个对象,再向q另一个对象要求另一个对象,如此如此。这Ӟ你需要隐藏分z?
15QMiddle Man
对象的基本特性之一是装Q而你l常?x)通过分派d现封装。但是这一步不能走得太q,如果你发C个类接口的一大半Ҏ(gu)都在做分z,你可能需要移去这个中间h?
16QInappropriate Intimacy
某些cȝ互之间太亲密Q它们花费了(jin)太多的时间去砖研别h的私有部分。对人类而言Q我们也怸应该太假正经Q但我们应当让自qcM格遵守禁Ʋ主义?
17QAlternative Classes with Different Interfaces
做相同事情的Ҏ(gu)有不同的函数signatureQ一致把它们往cdơ上U,直至协议一致?
18QIncomplete Library Class
要徏立一个好的类库非常困难。我们大量的E序工作都基于类库实现。然而,如此q泛而又相异的目标对库构提Z(jin)苛刻的要求。库构徏者也不是万能的。有时候我们会(x)发现库类无法实现我们需要的功能。而直接对库类的修Ҏ(gu)非常困难。这时候就需要用各种手段q行Refactoring?
19QData Class
对象包括状态和行ؓ(f)。如果一个类只有状态没有行为,那么肯定有什么地方出问题?sh)(jin)?
20QRefused Bequest
类传下来很多行为和状态,而子cd是用?jin)其中的很小一部分。这通常意味着你的cdơ有问题?
21QComments
l常觉得要写很多注释表示你的代码难以理解。如果这U感觉太多,表示你需要Refactoring?

Selina 2006-03-10 10:49 发表评论
]]>
高效J2ME应用E序U诀二十?lt;转蝲> http://www.aygfsteel.com/selina/articles/33577.htmlSelinaSelinaSat, 04 Mar 2006 02:46:00 GMThttp://www.aygfsteel.com/selina/articles/33577.htmlhttp://www.aygfsteel.com/selina/comments/33577.htmlhttp://www.aygfsteel.com/selina/articles/33577.html#Feedback0http://www.aygfsteel.com/selina/comments/commentRss/33577.htmlhttp://www.aygfsteel.com/selina/services/trackbacks/33577.html   本文主要是说明j2meq_上的Ҏ(gu)优化Ҏ(gu)Q与j2se重复的一些技巧就不再赘述?jin)?
  1.昄图象时确定好你的fpsQ最好先做几ơ小实验Q这栯让你在显C效果和q行速度上有比较好的q?br>   2.GamaCanvas.getGraphics()每次都会(x)产生一个全新的对象Q但是对q些对象的操作都是对同一个graphicsQ所以还是只取一ơ供后面使用?br>   3.让多个对象用同L(fng)监听器,比如让主MIDletcd现CommandListener和ItemStateListener接口?br>   4.考虑使用手机开发商提供的一些sdkQ没Z(x)比他们更?jin)解他们手机Q所以有些时候能显著提高速度Q特别是囄Q视频用方面?br>   5.使用监视工具分析MIDlet的瓶颈,wtk和各个公司提供的开发包里都?x)有Q可以找到程序的q。如果是在手ZQ用timer试你认为有可以的地斏V?br>   6.使用System.gc()Q在无线E阻塞的情况下可以有效的~解内存压力Q但是有些公怸是太推荐使用(如nokia).sun的说法也是越低端的机子执行的慢QMQ慎用吧?br>   7.用固定的数组代替使用Vector?br>   8.囄的优化。考虑使用讑֤的规|可能高分辨率的图片不一定显C的出来?br>   9.不用的对象赋gؓ(f)nullQؓ(f)更快的回收?br>   10.用؜淆器处理你的cLӞ防止反编译,q有一个好的副作用是它减class文g的大,因ؓ(f)h器往往用较短的字符串代替原来的? 量或Ҏ(gu)名?br>   11.若数据太大,可以数据编码ؓ(f)字符Ԍq行时解码,或把数据存(sh)ؓ(f)二进制文件ƈ与程序打包,用类装蝲器的getResourceAsStreamҎ(gu)在运行时存取?br>   12.使用现有的类Q比如你使用?jin)GameCanvasQ就不用自己生成off-screenQ另外像CLDC的profile没有构造集合类Q所以我们可以用内徏的Hashtable和VectorcL实现?br>   13.用优化Y件jPresto(http://www.s5systems.com/jPresto.htm)---没用q,不过暂且写上吧?br>   如果Ҏ(gu)件大,内存限制非常严格Q这时候就只能用一些非常规的方法了(jin)Q可能这些方法背M(jin)OO思想Q但是多数情况下Q它是vC(jin)非常U极的作用的(但是也可?Q假如你更在意于E序的维护和扩展斚wQ我你还是蟩q吧?_-||
  14.把所有资源文件做成一个数据文件?br>   15.把所有的图片文件做成一个文Ӟ在运行时?切割"开?br>   16.使用有限的面向对象,因ؓ(f)Ua(b)的OO往往意味着更多的虚Ҏ(gu)Q更多的层次关系Q更多的class?br>   17.生成可能少的classQclass都有一定的pȝ开销?
  18.class中生成尽可能的Ҏ(gu)。速度比较Q同步方?lt;接口Ҏ(gu)<实例Ҏ(gu)<finalҎ(gu)<?rn)态方法?br>   19.用final static限定Ҏ(gu)可以获得幅的速度提高?br>   20.Ҏ(gu)据成员用public限定Q来代替get和setҎ(gu)Q不q要注意安全性?br>   J2ME优化可能使你的程序在不同的模拟器Q不同的讑֤下有不同的运行效果,所?优化一定要建立在开发设备的规格上?br>   以上所列D的方法不一定在所有midp讑֤上都起作用,也不一定都适合每一个程序,MQ应该根据自w的情况?img src ="http://www.aygfsteel.com/selina/aggbug/33577.html" width = "1" height = "1" />

Selina 2006-03-04 10:46 发表评论
]]>
Java文g操作大全<转蝲>http://www.aygfsteel.com/selina/articles/1569.htmlSelinaSelinaMon, 28 Feb 2005 12:47:00 GMThttp://www.aygfsteel.com/selina/articles/1569.htmlhttp://www.aygfsteel.com/selina/comments/1569.htmlhttp://www.aygfsteel.com/selina/articles/1569.html#Feedback1http://www.aygfsteel.com/selina/comments/commentRss/1569.htmlhttp://www.aygfsteel.com/selina/services/trackbacks/1569.html阅读全文

Selina 2005-02-28 20:47 发表评论
]]>
վ֩ģ壺 | | ɣ| | | ƽ| ˳| | ˮ| ɽ| ̩| ½| ̨| | | | | | | ɽ| | ɽ| ˮ| | | ĺ| ͬ| ֹ| | | կ| ĩ| | | | | | ɽ| ְ| Ƹ| |