??xml version="1.0" encoding="utf-8" standalone="yes"?> <script> function sqrt(x) { var farr = new Array(); document.write(farr[0](10) + '<br/>'); document.write(other(sqrt)); </script> sqrt.count = 0; //sqrt(); 事情不能自己承担下来?/p>
感谢熊同学借我q本书看
Ƣ迎来看看?img src ="http://m.tkk7.com/dongwq/aggbug/350293.html" width = "1" height = "1" />
]]>
• 二者功能差异:(x)保留位置Q和位置形式
<script language="javascript">
function toggleVisibility(me)
{
if(me.style.visibility=="hidden")
{
me.style.visibility="visible";
}
else
{
me.style.visibility="hidden";
}
}
</script>
<DIV onclick="toggleVisibility(this)"
style="position:relative">
W一行文本将?x)触?/span>"hidden"?/span>"visible"属性,注意W二行的变化?br />
</DIV>
<DIV>因ؓ(f)visibility?x)保留元素的位置Q所以第二行不会(x)Ud.</DIV>
<script language="javascript">
function toggleDisplay(me){
if(me.style.display=="block"){
me.style.display="inline";
alert("文本现在是:(x)'inline'.");
}
else{
if(me.style.display=="inline"){
me.style.display="none";
alert("文本现在?'none'.3U钟后自动重新显C?/span>");
window.setTimeout("blueText.style.display='block';",
3000,"javascript");
}
else{
me.style.display="block";
alert("文本现在?'block'.");
}
}
}
</script>
<DIV>?/span><span id="blueText"
onclick="toggleDisplay(this)"
style="color:blue;position:relative;cursor:hand;">
蓝色</span>文字上点?yn)L查看效果.</DIV>
]]>
]]>
你能惌国ȝ上QQ却没有ȝp仪式吗?
你能惌北京奥林匹克q动?x),没有开q式表演吗?Q?
OK。相信你一定见q这L(fng)场景Q?
某老板匆匆忙忙地进?jin)屋Q忽地来?jin)一嗓子Q?#8220;大家?rn)?rn)Q通知大家一下:(x)以后Q某目q张负责?jin)?#8221;
**************************************************
话说楚汉怺。刘邦在萧何的再三D荐下Q决定让韩信为大?
“来hQ叫韩信q来Q我要封他ؓ(f)大将?#8221;刘邦道?
萧何表示异议Q?#8220;汉王你一向傲慢没有礼貌,现在拜大就和喊一个小孩子那么随便Q所以韩信才?x)离开的。汉王要想用人家Q必选一个吉日,吃素Q设坛Q用非常郑重地礼节来拜将才行?#8221;刘邦同意萧何的意见?
l果Q尽韩信是个无名小卒,却顺利的接过?jin)军权,而没有碰到那些元老们的抵抗,成功地导演了(jin)一q幕战争奇迹?
**************************************************
d拜将Q是一件具有深ȝ理内늚故事。它告诉我们q样一个道理:(x)
——内Ҏ(gu)重要的,但Ş式却是不容忽视?
我们不求老板非要在某个公开场合(zhn)扬地宣告:(x)“某项目成立了(jin)!!张从此站v来了(jin)Q!Q?#8221;什么吉日,什么斋戒,什么礼仪。。。也qŞ?jin)?
但是Q不l正式Q命书Q不在正式场合公布;甚至q一个头衔都舍不得。这l对是没天理的?
**************************************************
“看,老板不重视这个项目。。?#8221;Q相关h员)(j)
“瞧,老板不重视这个家伙。估计这个家伙没有什么后?#8221; Q相关h员)(j)
“你负责某目Q我怎么不知道有q么个项目呢Q你是哪位啊Q?#8221; Q相关h员)(j)
“老板gq不重视/信Q我啊” Q项目经理)(j)
***************************************************
以上U种Q对目的推动极Z利的。尤其是手下有资深员工、或者项目经理候补者等挑战者的时候,问题会(x)加倍严重?
大家可能?x)怀疑:(x)“没有那么严重吧?”
没有不严重,只有更严重!Q?
q其中蕴含着一个深ȝ道理——名不正则言不顺Q!
a不顺是什么意思呢Q?
-你的意见可能被忽视;
-你的命o(h)可能被当作徏议;
-你的计划可能被别人忘讎ͼ
试想Q你如果是项目经理,你的目会(x)怎样。。。。。?
*********************************************************
Question: 我没有办法叫老板改变。那么,我该怎么办?
AnswerQ要写一邮ӞQ告诉别Z是谁?
*********************************************************
你的老板犯了(jin)错误Q可是你不能错错Q你的老板忽视?#8220;?#8221;的问题(形式问题Q,你一定要扛_来!Q?
试想Q你的老板不重视,你也不重视,你能指望别h重视吗?Q?
当然Q答案就是别Z(x)更不重视Q!
那么Q这邮件该怎么写呢Q?
**************************************************
MailTo: 所有下?
CC: 所有相关领|所有相关h员,自己
Title: 【A目】A目的新目l理张向大安?
Content:
1 开门见山地告诉别h自己的位|(正名Q?
2 向相关h员致敬,q自然地点出自己的优势(自我介绍Q?
3 向领D敬致谢(拉近和领导关p)(j)
4 暗示自己的权利范_(d)宣布自己的领圎ͼ(j)
5 喊两句口P合作和积极的姿态是必要的)(j)
6 不要忘了(jin){Q进一步加深印象)(j)
//其中Q???是必要表现出来?
**************************************************
上面q封邮gQ基本上完成?jin)告诉别Z是谁的问题,而且完成?jin)你的位|n份暗C?
如果说老板不负责Q的Q命Ş式带l你w䆾位置认同危机Q沉重打M(jin)你的威信的话Q?
通过q䆾邮gQ你已经用n份暗C个武器,夺回?jin)主动权Q!
从这信以后Q由于你的n份位|的明确Q?
相关人员在潜意识中会(x)认同你的领地所有权Q?
?x)对在你的领C和你发生冲突产生不自?dng)不合法甚臌|感Q?
从而下意识中就?x)避免和你发生冲H?
反过来讲Q你的位|n份的明确Q将成ؓ(f)你自信的源泉Q?
而这U位|感产生的自信将使你的发a充满?jin)正义感Q?
加上目l理q个位置所带来的小的势能。。?
权力q个东西Q真好!Q?
嗯,一个好的开端,不是?
]]>
1、函数定义和使用
return x * x;
}
function other(f) {
var y = f(10);
return y;
}
farr[0] = function(arg) { return arg + arg;};
farr[1] = function(arg) { return arg * arg;};
document.write(farr[1](10));
sqrt.getcount = function() {
return this.count;
}; // 附加函式
document.write(sqrt.count, '<br/>');
document.write(sqrt.getcount());
]]>
关键一点,你的上要喜Ƣ你。工作中涉及(qing)要决{的都要跟上U报告。这是上U的作用?/p>
对于q的同事是不能用命令,不能要求别h做事的?/p>
说说我的感受Q此书没有书评中说的那么好,当然也没有那么坏。大家各取所需好。与其叫说Q不如说是一U创新Ş式的职场教材。不要太d意作者的文笔Q而要更多的体?x)书中各位同学的处事之道?
几句话ȝ一下:(x)
1、勤奋是王道Q其他的都属于EQ范畴?
2、要注意技巧,其是沟通技巧,别干?jin)半天,没h知道你的工作量有多少?
3、掂量自q能力Q做好该做的事,不做不该做的事,比如汇报?
4、不要说人坏话,能帮助别人时要帮Q关键时d使没有h帮你说话Q但也不?x)有你的坏话。不信的话,ȝ看圣l怎么说得吧?
5、要有气量,做事要圆通?
6、要有自q风格Q风格没有好坏之分,但是一定要有?
7、告诉我们什么是好工作,q点比较长,见下面的摘抄Q感?#8220;木马|造化弄h”的A(ch)献)(j)Q?
“一、关于什么样的职位算好职?
1.你得找一家好公司
什么是好公?
1)产品附加值高Q生意好Qƈ且从业务U看Q具备持l发展的能力和前?
2)有专业的/聪明能干?l验丰富?q且Zh现实的管理层Q在把握q公司,q且有保护一贯这L(fng)人的制度的公?
3)有严格的财务制度Q对预算、费用和利润{于投入产出有关的内容,敏感q且h强控制力的公?
4)崇尚客户导向/?jng)场导?l果导向/执行力的公司;
5)有专业严谨全面的程和制度,q且其执行有利于推动业务的良性发展,h控制性和实操性兼备的特点;
---ȝhQ就是一家具有持l赢利能力的牛B公司
2.你的找一个好的方?
什么是好的方向?
永远不要q离核心(j)业务Uѝ你得看明白Q在企业中,哪个环节是实现利润最大化的关键环节。有时候是销售环节,有时候是?jng)场{划环节Q有时候是研发环节Q有时候是生环节Q视乎你所在行业而不同?
最重要的环节,L 最늚Q最牛的Q最得到重视的,也是最有发展前途的部门。它拥有最多的资源和最大的权威--你应该依附在q样的核?j)业务线上发展,臛_能避免被边缘化,而成为关键h才的可能性则更大?jin)?
3.你得跟一个好老板?
好老板的标准很多,关键的是Q你要设法跟上一个在公司处于强势C的老板。他强,你才能跟着上。跟?jin)一个弱势的老板Q你的前途就很同意被根着l耽搁?jin)?
二、关于具备谋取好职位的资?
要具备怎么L(fng)资格?一般情况下Q你得是用h部门g的优U者?
怎么h优U?
1.对上U?
1)你要知道与他建立一致性,他觉得重要的事情Q你p得重要,他认为紧急的事情你也认ؓ(f)紧急,你得和他劲往一处--通常情况下,你得表现和能力好q是不好Q主要是你得直接ȝ说了(jin)的;
2)你的具备从上U那里获得支持和资源的能?-别你q的半死Q你的老板q对你爱搭不理的Q那你就不具备本条g的能力?
2.对下U?
1)要能明确有效的设|正的工作目标Q其符合SMART原则;
2)要能有效地管理团队内部冲H?
3)要能公^合理地控制分配团队资?
4) 要有愿望和能力发展指g属,q恰当授?
5)恰当的赞扬鼓p可团队成?
6)重不同xQ分享知识经验和信息Q徏立信ȝ氛围?
3.对内、外部客?
1)愿意提供协助和增值服?不然要你q嘛);
2)善意聆听q了(jin)解需?搞明白h安要的到底是啥);
3)可靠的提供品和服务Q及(qing)时跟q?千万注意?qing)?;
4)?jin)解l织架构q具影响力。及(qing)早地建立q维护关键的关系Q是q样的关pL利于你达成业l?专业而明智的选择);
比如你想取得一个内部职位,你的搞明白了(jin)Q谁是关键的做决定的人物Q别M乎不心(j)l这个h留下坏印象?
比如必要d人那里拿订单Q你找了(jin)一个关键的人物AQ可是你也别忽略作购买决定环节上的另一个h物BQ没准B和A是死敌,本来B?x)同意给你下订单的,因为A同意l你单子QB是不同意给你单子?
4.Ҏ(gu)岗Q?
1)清楚自己的定位和职责--别搞不清楚自己是谁,什么是自己的活Q知道什么该报告Q什么要自己独立做决?
2)l果导向--讄高目标,信守承诺Q承担责任,注重质量、速度和期限,争取dQ无需督促(j);
3)清晰的制定业务计划ƈ有效实施;
4)学习(fn)能力--愿意学,坚持学,?qing)时了(jin)解行业?竞争状况和技术更斎ͼq学以致?
5)承受压力的能?-严峻的工作条件下Q能坚忍不拔Q想办法获取资源、支持和信息Q努力以实现甚至越目标;
6)适应的能?-如适应多项要求q存Q优先变换以及(qing)情况不明{工作条Ӟ?qing)时调整自己的行为和风格来适应不同个h?qing)团队的需?工作重心(j)?x)变化,老板?x)换人,客h也会(x)变,别和他们?#8220;我过d何如?#8221;Q多M(jin)解对方的风格) ”?
]]>
最期望的L谢别人。不要抱着目的L谢别人,甚至事前感谢也好。感谢只需说一ơ?br />
发掘别h不明昄优点加以赞扬?br />
赞扬行动和品性,而不要扩大到赞扬一个h。赞扬的原因要说明?/p>
和气生胦(ch)吗?喝杯水?/p>
寚w生h要特别要W。微W是影响人气质的一个特别重要的东西?/p>
对生zȝ真诚Q快乐的感情最能够打动人?L(fng)微笑也很好?/p>
认真的品质:(x)M个月和十q?/p>
l装的质量差Q认真的态度。d国h的认真,指\?x)指出的很具体的?/p>
只有最认真的h才能做出最好的产品?/p>
自动自发的精,一定要发挥自己的主观能动性?/p>
当成自己的事来做吧。要d的来做?/p>
做好产品是h的一U尊严。争强好胜在自己的工作上面。因是你的发挥场地?/p>
只办总裁班?成本与质量观念不一L(fng)Q?规模l济Q质量了(jin)的品成本会(x)降低?/p>
(g)查的目的是ؓ(f)?jin)改q生zLE?/p>
制图?
困定的供货商Q不是投标。是指定方式做?/p>
永远q求持箋不断的完善?/p>
有必要再试一ơ?/p>
改进自己的品吧?/p>
也淘C(jin)自己的竞争者?一个系列的生方式是不错的?/p>
到外LԌ不做化疗Q活q了(jin)三年Q?/p>
要有自己的追求。活pzd自己的h(hun)倹{无论在何时的年龄,都要有自qq求?/p>
人生不是直线的,是C型的人生?/p>
人生可以随时开始?br />
创徏模式(Creational Patterns)
Abstract Factory Builder
Factory Method Prototype
Singleton
l构模式(Structural Patterns)
Adapter Bridge
Composite Decorator
Facade Flyweight
Proxy
行ؓ(f)模式(Behavioral Pattern)
Chain of Responsibility Command
Interpreter Iterator
Mediator Memento
Observer State
Strategy Template Method
Visitor
一、创建模?Creational Patterns)
1.Abstract Factory(抽象工厂)—把相关零gl合成?br />
Abstract Factory Pattern 是把各种抽象零gl合成抽象品。换句话_(d)处理的重Ҏ(gu)在接?API)而不是零件的具体实现。只利用接口(API)p把零件组合成产品.
E序CZ:
--Main.java 试用的c?br />
|-factory
| |-------Factory.java 表示抽象工厂的类(产生Link,Tray,Page)
| |-------Itme.java 用来l一处理Link和Tray的类
| |-------Link.java 抽象零g:表示HTMLq接的类
| |-------Tray.java 抽象零g:抽取Link和Tray的类
| |-------Page.java 抽象零g:表示HTML|页的类
|
|-listfactory
|-------listFactory.java 表示具体工厂的类(产生ListLink,ListTray,ListPage)
|-------listLink.java 具体零g:表示HTMLq接的类
|-------listTray.java 具体零g:抽取Link和Tray的类
|-------listPage.java 具体零g:表示HTML|页的类
步骤:定义抽象零g->用抽象零件定义抽象工?>定义具体零g(l承实现抽象零g)->定义具体工厂(l承实现抽象工厂,刉实际?
2.Factory Method
Factory Method Pattern 在父c规定对象的创徏Ҏ(gu),但ƈ没有深入到较具体的类?所有具体的完整内容都放在子c?Ҏ(gu)q个原则,我们可以大致分成产生对象实例的大U?框架)和实际生对象实例的cM斚w.
E序CZ:
--Main.java 试用的c?br />
|-framework
| |-------Product.java 仅定义抽象方法use的抽象类
| |-------Factory.java 规定createProduct,registerProduct,实现create的抽象类(cM模板Ҏ(gu))
|
|-idcard
|-------IDCard.java 实现Ҏ(gu)use的具体类
|-------IDCardFactory.java 实现Ҏ(gu)createProduct,registerProduct的类
步骤:定义抽象产品->Ҏ(gu)抽象产品定义抽象工厂->定义具体产品(l承实现抽象产品)->定义具体工厂(l承实现抽象工厂,刉实际?
3.Singleton(单g)Q唯一的对象实?br />
Singleton Pattern 是针对一个类而言. Singletoncd?x)生1个对象实例.SingletoncLsingleton定义为static字段(cd?,再以Singletoncȝ对象实例q行初始化.q个初始化的操作仅在加蝲SingletoncLq行一ơ.
Singletoncȝ构造函数是private的,主要是ؓ(f)?jin)禁止从非Singletonc调用构造函敎ͼ即下面q个表达式不在此cM内,~译时仍然会(x)出现错误Q?br />
E序CZ:
|--Main.java 试用的c?br />
|--Singleton.java 只有Q个对象实例的类
步骤:定义一个该cȝ型的static字段Q同时实例化->该类的构造方法设为private->定义一个static的getInstance()Ҏ(gu)Q返回已l实例化的static字段Q?/p>
4.Builder(生成?Q组合复杂的对象实例
Builder Pattern 是采用@序渐q的方式l合较复杂对象实例的Q?br />
E序CZ:
|--Main.java 试用的c?br />
|--Builder.java 规定建立文g时的Ҏ(gu)的抽象类
|--Director.java 产生Q个文g的类
|--TextBuilder.java 产生plaintext格式(一般文本格?的类
|--HTMLBuilder.java 产生HTML格式的类
步骤:定义建立文g时的通用Ҏ(gu)(Builder.java)->Ҏ(gu)通用Ҏ(gu)l织建立文g(Director.java)->Ҏ(gu)不同需求实现徏立文件的通用Ҏ(gu)(TextBuilder.java,HTMLBuilder.java)
5.Prototype(原型)Q复制徏立对?br />
Prototype Pattern 不是利用cM生对象实例,而是从一个对象实例生出另一个新对象实例Q?br />
E序CZ:
|--Main.java 试用的c?br />
|--MessageBox.java 把字W串框v来use的类Q实现use和createClone
|--UnderlinePen.java 把字W串加上下划U的c.实现use和createCone
|--framework
|-------Product.java 已声明抽象方法use和createClone的接?br />
|-------Manager.java 利用createClone复制对象实例的类
步骤:规定可复制品的接口(Product.java,l承Cloneable接口)->保存可复制的产品(以Productcd存以哈西表中)Qƈ提供复制产品的方法create(调用产品的复制方法,复制工作在具体品类中执?(Manager.java)->定义可复制的具体产品(UnderlinePen.java,MessageBox.java,实现复制产品Ҏ(gu))
二、结构模?Structural Patterns)
1.Adapter(适配?Q换个包装再度利?br />
Adapter Pattern 把既有的无法直接利用的内容{换成必要的类型后再用.h填^Q既有内容"和"需要结果"两者间Q落差"的功能.
Adapter Pattern 有承和委托两种形式Q?br />
E序CZ:
|--Main.java 试用的c?br />
|--Banner.java h原始功能showWithParen,showWithAster的类
|--Print.java 所需新功能printWeak,printStrong的接口或抽象c?br />
|--PrintBanner.java 把原始功能{换成新功能的c?br />
步骤:
(l承)构造具有原始功能的c?Banner.java)->定义h新功能的接口(Print.java)->转换(PrintBanner.java,l承Banner实现Print接口,即承旧Ҏ(gu)实现新功?
(委托)构造具有原始功能的c?Banner.java)->定义h新功能的抽象c?Print.java)->转换(PrintBanner.java,l承h新功能的Printc?定义委托对象,卛_始功能类.构造时传入原始功能实例对象Q新功能的实现利用委托对象的原始功能Q?
2.Bridge(桥接)Q分成功能层ơ和实现层次
Bridge Pattern 沟通着Q功能的cdơ"和"实现的类层次Q?br />
功能的类层次Q给父类增加不同的功?br />
实现的类层次Q给父类以不同的实现
Bridge Pattern 本质上是通过功能c?最上层的功能类)中的一个实现类(最上层的实现类Q一般是抽象c?字段来桥接两个类层次的.
E序CZ:
|--Main.java 试用的c?br />
|--Display.java 功能cdơ的最上层c?br />
|--CountDisplay.java 功能cdơ的新增功能c?br />
|--DisplayImpl.java 实现cdơ的最上层c?br />
|--StringDisplayImpl.java 实现cdơ的实现c?br />
步骤:定义实现cdơ的最上层c?DisplayImpl.java)->定义功能cdơ的最上层c?Display.java,使用Adapter Pattern的委托方式把DisplayImpl.java的原始功能{换成Display.java的新功能)->定义功能cdơ的新增功能c?CountDisplay.java)->定义实现cdơ的实现c?StringDisplayImpl.java)
3.Composite(l成)-对容器和内容一视同?br />
有时候把容器和内容当作是同类来处理会(x)比较好下手。容器里面可以是内容Q也可以是更一L(fng)容器Q而这个小一L(fng)容器里还可以再放更小一L(fng)容器Q可以徏立出像这样大套小的结构和递归l构的Pattern是Composite Pattern
使用Composite Pattern,容器和内容必L一定的共?
E序CZ:
|--Main.java 试用的c?br />
|--File.java 表示文g的类
|--Directory.java 表示目录的类
|--Entry.java 对File和Directory一视同仁的抽象c?br />
|--FileTreatmentException.java Ʋ在文g内新增Entry时所发生的异常类
步骤:定义异常c?FileTreatmentException.java)->定义q入点类,卛_容器和内容一视同仁的抽象c?Entry.java,容器和内定w含有共同的方?->定义容器cd内容c?File.java,Directory.java,l承Entry,实现通用Ҏ(gu))
4.Decorator(装饰)-对装饰和内容一视同?br />
先徏立一个核?j)对?再一层层加上装饰用的功能,可以完成符合所需的对?可以看成是多个通用的适配?
E序CZ:
|--Main.java 试用的c?br />
|--Display.java 打印字符串用的抽象类
|--StringDisplay.java 只有1行的打印字符串用的类
|--Border.java 表示"装饰外框"的抽象类
|--SideBorder.java 只在左右加上装饰外框的类
|--FullBorder.java 在上下左叛_上装饰外框的c?br />
步骤:定义核心(j)对象的抽象类(Display.java)->定义核心(j)对象c?StringDisplay.java)->定义装饰cȝ抽象c?Border.java,l承核心(j)对象的抽象类Display.java,以便装饰和内容一视同?装饰cMl承自核?j)对象抽象类的方法委托给传入的核心(j)对?->定义其它装饰c?SideBorder.java,FullBorder.java,l承Border.java)
5.Facade(外观)-单一H口
Facade Pattern 能整理错l复杂的来龙去脉,提供较高U的接口(API).Facade参与者让pȝ外部看到较简单的接口(API).而且Facade参与者还?x)兼儡l内部各cd能和互动关系,以最正确的顺序利用类.
Facade Pattern 把业务逻辑装h,只提供一个简单的接口l外部调?
E序CZ:
|--Main.java 试用的c?br />
|--maildata.txt 邮g列表文g
|--pagemaker
|-------Database.java 从邮件信取得用户名U的c?br />
|-------HtmlWriter.java 产生HTML文g的类
|-------PageMaker.java Ҏ(gu)邮g信箱产生用户|页的类
步骤:定义业务逻辑需要的相关c?Database.java,HtmlWriter.java)->定义外部接口c?PageMaker.java)
6.Flyweight(享元)-有相同的部分共?采用_政策
"量׃n对象实例,不做无谓的new".不是一需要对象实例就马上new,如果可以利用其他现有的对象实?p它们׃n.q就是Flyweigth Pattern的核?j)概?
Flyweight Pattern 实质是把创徏的占用内存量大的对象存储h(一般用hashtable存储),后箋使用?再从hashtable取出.
E序CZ:
|--Main.java 试用的c?br />
|--BigChar.java 表示"大型字符"的类
|--BigCharFactory.java ׃nq生BigChar的对象实例的c?br />
|--BigString.java 表示多个BigChar所产生?大型文本"的类
步骤:定义占用内存量大,需要共享的c?Display.java)->定义׃n实例的类(BigCharFactory.java,׃n处理在此q行,生的׃n对象存储在哈希表?W二ơ用时从表中取出即?不需要new)->定义׃n对象l合使用c?BigString.java)
7.Proxy(代理)-需要再建立
代理是那个代替本来应该自己动手做事的本人的?
׃代理Ua(b)只是代理工作而已,因此能力范围也有?如果遇到出代理能力所?qing)的范?代理应该去找本人商量才?
E序CZ:
|--Main.java 试用的c?br />
|--Printer.java 表示命名的打印机的类(本h)
|--Printable.java Printer和PrinterProxy׃n的接?br />
|--PrinterProxy.java 表示命名的打印机的类(代理)
步骤:定义本h和代理都能处理的问题的接?Printable.java)->建立本hc?Printer.java,实现Printable.java接口)->建立代理c?PrinterProxy.java,定义本h字段,把代理无法处理的问题交给本h)
三、行为模?Behavioral Pattern)
1.Chain of Responsibility(职责?-责Q转?br />
先对Z生一个要?如果q个人有处理的能力就处理?如果不能处理的话,把要求转送给"W二个h".同样?如果W二个h有处理的能力时就处理?不能处理的话,ql{送给"W三个h",依此cL.q就是Chain of Responsiblility Pattern.
Chain of Responsibility Pattern 的关键在于定义{送字D?next)和定义职责链.
E序CZ:
|--Main.java 建立Support的连?产生问题的测试用c?br />
|--Trouble.java 表示发生问题的类.内有问题~号.
|--Support.java 解决问题的抽象类.内有转送字D和处理Ҏ(gu).
|--NoSupport.java 解决问题的具体类(永远"不处?)
|--LimitSupport.java 解决问题的具体类(解决于指定L(fng)的问?
|--OddSupport.java 解决问题的具体类(解决奇数L(fng)的问?
|--SpecialSupport.java 解决问题的具体类(解决Ҏ(gu)L(fng)的问?
步骤:建立问题c?Trouble.java)->建立解决问题的抽象类(Support.java,定义?jin){送字Dnext,讄转送字D늚Ҏ(gu)setNext和处理问题的Ҏ(gu)support)->建立解决问题的具体类(NoSupport.java,LimitSupport.java,OddSupport.java,SpecialSupport.java,l承Support.java)->产生处理问题的对?建立职责?/p>
2.Command(命o(h))-命令写成类
用一?表示命o(h)的类的对象实?来代表欲执行的操?而不需采用"调用Ҏ(gu)"的类的动态处?如欲理相关U录,只需理该对象实例的集合卛_.而若预先命令的集合存储h,q可再执行同一命o(h);或者是把多个命令结合成一个新命o(h)供再利用.
Command Pattern 重点在于存储/使用命o(h)
E序CZ:
--Main.java 试用的c?br />
|-command
| |-------Command.java 表示"命o(h)"的接?br />
| |-------MacroCommand.java 表示"l合多个命名的命?的类
|
|-drawer
|-------DrawCommand.java 表示"点的l制命o(h)"的类
|-------Drawable.java 表示"l制对象"的接?br />
|-------DrawCanvas.java 表示"l制对象"的类
步骤:建立命o(h)接口(Command.java)->建立命o(h)l合c?MacroCommand.java,各个命令存储到一个Stackcd的字D?->建立l制命o(h)c?DrawCommand.java,定义l制对象字段drawable,实现命o(h)接口)->建立l制对象接口(Drawable.java)->建立l制对象c?DrawCanvas.java,实现l制对象接口,定义命o(h)集合字段history)->试
3.Interpreter(解释?-以类来表达语法规?br />
Interpreter Pattern 是用单的"q你语言"来表现程序要解决的问?以迷你语a写成"q你E序"而表现具体的问题.q你E序本n无法独自启动,必须先用java语言另外写一个负?解释(interpreter)"的程?解释E序能分析迷你语a,q解释\执行q你E序.q个解释E序也称释器.当应解决的问题发生变化时,要修改迷你程序来对应处理.而不是修改用java语言写成的程?
q你语言语法:
<program>::=program<command list>
<command list>::=<command>* end
<command>::=<repeat command>|<primitive command>
<repeat command>::=repeat<number><command list>
<primitive command>::=go|right|left
E序CZ:
|--Main.java 试用的c?br />
|--Node.java ?wi)状剖析?节点"的类
|--ProgramNode.java 对应<program>的类
|--CommandListNode.java 对应<command list>的类
|--CommandNode.java 对应<command>的类
|--RepeatCommandNode.java 对应<repeat command>的类
|--PrimitiveCommandNode.java 对应<primitive command>的类
|--Context.java 表示语法解析之前后关pȝc?br />
|--ParseException.java 语法解析中的例外c?br />
步骤:定q你语言的语?>建立语法解析c?Context.java,使用java.util.StringTokenizerc?->建立解析异常c?ParseException.java)->建立语法节点抽象c?Node.java,定义parse解析Ҏ(gu))->建立各语法节点对应的语法c?ProgramNode.java,CommandListNode.java,CommandNode.java,RepeatCommandNode.java,PrimitiveCommand.java,l承语法节点Node.javac?
4.Iterator-q代?br />
Iterator Pattern 是指依序遍历q处理多个数字或变量.
E序CZ:
|--Main.java 试用的c?br />
|--Aggregate.java 表示已聚合的c?br />
|--Iterator.java 执行递增\遍历的接?br />
|--Book.java 表示书籍的类
|--BookShelf.java 表示书架的类
|--BookShelfIterator.java 扫描书架的类
步骤:定义聚合接口(Aggregate.java)->定义遍历接口(Iterator.java)->建立具体的遍历对象类(Book.java)->建立具体的聚合类(BookShelf.java,实现聚合接口)->建立具体的遍历类(BookShelfIterator.java,实现遍历接口)
5.Mediator(中介?-只要面对一个顾?br />
每个成员都只寚w问提出报?也只有顾问会(x)发出指示l各个成?成员们彼此也不会(x)L问目前状况如?或ؕ发指C给其他成员.
E序CZ:
|--Main.java 试用的c?br />
|--Mediator.java 军_"N"接口(API)的接?br />
|--Colleague.java 军_"成员"接口(API)的接?br />
|--ColleagueButton.java 实现Colleagues接口.表示按键的类
|--ColleagueTextField.java 实现Colleagues接口.输入文本的类
|--ColleagueCheckbox.java 实现Colleagues接口.表示选择目(在此为选择按钮)的类
|--LoginFrame.java 实现Mediator接口.表示d对话框的c?br />
步骤:定义N接口(Mediator.java)->定义成员接口(Colleague.java)->建立具体的成员类(ColleagueButton.java,ColleagueTextField.java,ColleagueCheckbox.java,实现成员接口)->建立具体的顾问类(LoginFrame.java,实现N接口)
6.Memento(备忘?-存储状?br />
Memento Pattern ?x)把某个旉点的对象实例状态记录存储v?{到以后再让对象实例复原到当时的状?
E序CZ:
|--Main.java q行游戏的类.先把Memento的对象实例存储v?如有必要时再复原Gamer的状?br />
|--game
|-------Gamer.java 玩游戏的Mh的c?br />
|-------Memento.java 表示Gamer状态的c?产生Memento的对象实?br />
步骤:建立需要存储状态的c?Gamer.java)->建立状态类(Memento.java,状态类与需要存储状态的cGamer.java应具有相同的必要字段)
7.Observer(观察?-通知状态变?br />
当被Observer Pattern 列入观察名单的状态发生变?׃(x)通知观察?在写一些跟状态变化有关的处理?Observer Pattern是很好用的工?
E序CZ:
|--Main.java 试用的c?br />
|--Observer.java 表示观察者的接口
|--NumberGenerator.java 表示产生数值对象的抽象c?br />
|--RandomNumberGenerator.java 产生随机数的c?br />
|--DigitObserver.java 以数字表C数值的c?br />
|--GraphObserver.java 以简易长条图表示数值的c?br />
步骤:定义观察者接?Observer.java)->建立被观察的c?NumberGenerator.java,RandomNumberGenerator.java,定义观察者结合字D将观察者存储v?->建立具体的观察者类(DigitObserver.java,GraphObserver.java,实现观察者接?
8.State(状?-以类表示状?br />
以类来表C状态之后,只要切换cd能表?#8220;状态变?#8221;Q而且在必L增其他状态时Q也很清楚该~写哪个部分?br />
E序CZ:
|--Main.java 试用的c?br />
|--State.java 表示金库状态的接口
|--DayState.java 实现State的类。表C白天的状?br />
|--NightState.java 实现State的类。表C夜间的状?br />
|--Context.java 理金库的状态变化,跟保安中?j)联l的接口
|--SafeFrame.java 实现Context的类。含有按钮、画面显C等的用h?br />
步骤:定义状态接?State.java,用State Pattern之前各种行ؓ(f)Ҏ(gu)抽象出来)->建立具体的状态类(DayState.java,NightState.java,实现状态接?状态变化的具体动作在这里执?->定义理状态变化的接口(Context.java,规定状态变化及(qing)相关的调用方?->建立状态管理类(SafeFrame.java,实现状态管理接?
9.Strategy({略)-把算法整个换?br />
在Strategy Pattern之下Q可以更换实现算法的部分而且不留痕迹。切换整个算法,化改为采用其他方法来解决同样的问题?br />
E序CZ:
|--Main.java 试用的c?br />
|--Hand.java 表示猜拳“手势”的类
|--Strategy.java 表示猜拳“战略”的接?br />
|--WinningStrategy.java 表示猜赢之后l箋出同h式的战略的类
|--ProbStrategy.java 表示从上一ơ出的招式,以概率分配方式求Z一个招式机率的c?br />
|--Player.java 表示玩猜拳的游戏者的c?br />
步骤:定义{略接口(Strategy.java)->建立具体的策略类(WinningStrategy.java,ProbStrategy.java,实现{略接口)->建立使用{略的类(Player.java,定义{略字段Q以便用切换策?->建立其它c?Main.java,Hand.java)
10.Template Method(模板Ҏ(gu))-实际处理交给子类
在父cL定处理大UӀ在子类规定具体内容的Design Patternq为Template Method Pattern
E序CZ:
|--Main.java 试用的c?br />
|--AbstractDisplay.java 只实现方法display的抽象类
|--CharDisplay.java 实现Ҏ(gu)open,print,close的类
|--StringDisplay.java 实现Ҏ(gu)open,print,close的类
步骤:定义模板c?AbstractDisplay.java,实现dispalyҎ(gu)Q即制作?jin)模?->建立具体内容c?CharDisplay.java,StringDisplay.java,l承模板c,实现模板cL有实现的Ҏ(gu))
11.Visitor(讉K?-在结构中I梭q同时做?br />
Visitor Pattern 把数据结构和处理两者分开Q另外写一个表C在数据l构内穿梭来ȝM“访客”的类Q然后把处理交给q个cLq行。如此一来,如果惌加新的处理行为时Q只要再建立一个新?#8220;访客”卛_。而在数据l构q边Q也只要能接受来敲门?#8220;访客”p完成动作?br />
在父cL定处理大UӀ在子类规定具体内容的Design Patternq为Template Method Pattern
E序CZ:
|--Main.java 试用的c?br />
|--Visitor.java 表示讉K文g或目录的访客的抽象类
|--Acceptor.java 表示接受Visitorcȝ对象实例的数据结构的接口
|--ListVisitor.java Visitorcȝ子类Q打印文件和目录信息的类
|--Entry.java File和Directory的父cȝ抽象c?实现Acceptor接口)
|--File.java 表示文g的类
|--Directory.java 表示目录的类
|--FileTreatmentException.java 发生在对Fileq行add时的例外c?br />
步骤:定义讉K者的抽象c?Visitor.java,定义讉KҎ(gu))->定义受访者接?Acceptor.java,定义接受讉K的方?->建立具体的访问者类(ListVisitor.java,l承讉K者抽象类Q实现访问方?->建立具体的受访者类(Entry.java,File.java,Directory.java,实现受访者接?->~写异常c?FileTreatmentException.java)
本文来自CSDN博客Q{载请标明出处Qhttp://blog.csdn.net/pian_yun/archive/2007/09/14/1784981.aspx
注意可以引入xml字段的元素有 限:(x)
例如Q与DIV元素l定的代码如下:(x)
d: U) f1 y
注意Qƈ非所有的HTML元素都能与XML数据岛绑定。目前,支持q种DSOl定机制的元素如下:(x). H2 V- _% j! E/ {4 i
$ \( \$ l" b+ H( M& Y
A、APPLET、BUTTON、DIV、FRAME、IFRAME?IMG、INPUT (此处cd是:(x)CHECKBOX、HIDDEN?LABEL、PASSWORD、RADIO和TEXT)、LABEL?MARQUEE、SELECT、SPAN、TABLE?TEXTAREA?/p>
1.NAL概述
NAL全称Network Abstract Layer, 即网l抽象层?br />
在H.264/AVC视频~码标准中,整个pȝ框架被分Z(jin)两个层面Q视频编码层面(VCLQ和|络抽象层面QNALQ。其中,前者负责有效表C频数据的内容Q而后者则负责格式化数据ƈ提供头信息,以保证数据适合各种信道和存储介质上的传输?br />
现实中的传输pȝ是多样化的,其可靠性,服务质量Q封装方式等特征各不相同QNALq一概念的提出提供了(jin)一个视频编码器和传输系l的友好接口Q得编码后的视频数据能够有效地在各U不同的|络环境中传输?/p>
2.NAL单元
NAL单元是NAL的基本语法结构,它包含一个字节的头信息和一pd来自VCL的称为原始字节序列蝲PRBSPQ的字节。头信息中包含着一个可否丢弃的指示标记Q标识着该NAL单元的丢弃能否引起错误扩散,一般,如果NAL单元中的信息不用于构建参考图像,则认为可以将其丢弃;最后包含的是NAL单元的类型信息,暗示着其内含有效蝲L(fng)内容?br />
送到解码器端的NAL单元必须遵守严格的顺序,如果应用E序接收到的NAL单元处于乱序Q则必须提供一U恢复其正确序的方法?/p>
3.NAL实现~解码器与传输网l的l合
NAL提供?jin)一个编解码器与传输|络的通用接口Q而对于不同的|络环境Q具体的实现Ҏ(gu)是不同的。对于基于流的传输系l如H.320、MPEG{,需要按照解码顺序组lNAL单元Qƈ为每个NAL单元增加若干比特字节寚w的前~以Ş成字节流Q对于RTP/UDP/IPpȝQ则可以直接编码器输出的NAL单元作ؓ(f)RTP的有效蝲P而对于同时提供多个逻辑信道的传输系l,我们甚至可以Ҏ(gu)重要性将不同cd的NAL单元在不同服务质量的信道中传输[2]?/p>
4.l论
Z(jin)实现~解码器良好的网l适应性,需要做两方面的工作Q第一、在Codec中将NALq一技术完整而有效的实现Q第二、在遵@H.264/AVC NAL规范的前提下设计针对不同|络的最佳传输方案。如果实C(jin)以上两个目标Q所实现的就不仅仅是一U视频编解码技术,而是一套适用范围很广的多媒体传输Ҏ(gu)Q该Ҏ(gu)适用于如视频?x)议Q数据存储,?sh)视q播Q流媒体Q无UK信Q远E监控等多种领域?/p>
NALUcd
标识NAL单元中的RBSP数据cdQ其中,nal_unit_type?Q?2Q?3Q?4Q?5?2的NAL单元UCؓ(f)VCL的NAL单元Q其他类型的NAL单元为非VCL的NAL单元?/p>
0Q未规定
1Q非IDR囑փ中不采用数据划分的片D?br />
2Q非IDR囑փ中AcL据划分片D?br />
3Q非IDR囑փ中BcL据划分片D?br />
4Q非IDR囑փ中CcL据划分片D?br />
5QIDR囑փ的片D?br />
6Q补充增Z?(SEI)
7Q序列参数集
8Q图像参数集
9Q分割符
10Q序列结束符
11Q流l束W?br />
12Q填充数?br />
13 – 23Q保?br />
24 – 31Q未规定
NALU的顺序要?/p>
H.264/AVC标准寚w到解码器的NAL单元序是有严格要求的,如果NAL单元的顺序是混ؕ的,必须其重新依照规范l织后送入解码器,否则解码器不能够正确解码?/p>
1.序列参数集NAL单元必须在传送所有以此参数集为参考的其他NAL单元之前传送,不过允许q些NAL单元中间出现重复的序列参数集NAL单元。所谓重复的详细解释为:(x)序列参数集NAL单元都有其专门的标识Q如果两个序列参数集NAL单元的标识相同,可以认为后一个只不过是前一个的拯Q而非新的序列参数集?br />
2.囑փ参数集NAL单元必须在所有以此参数集为参考的其他NAL单元之先Q不q允许这些NAL单元中间出现重复的图像参数集NAL单元Q这一点与上述的序列参数集NAL单元是相同的?br />
3.不同基本~码囑փ中的片段QsliceQ单元和数据划分片段Qdata partitionQ单元在序上不可以怺交叉Q即不允许属于某一基本~码囑փ的一pd片段QsliceQ单元和数据划分片段Qdata partitionQ单元中忽然出现另一个基本编码图像的片段QsliceQ单元片D和数据划分片段Qdata partitionQ单元?br />
4.参考图像的影响Q如果一q图像以另一q图像ؓ(f)参考,则属于前者的所有片D(sliceQ单元和数据划分片段Qdata partitionQ单元必d属于后者的片段和数据划分片D之后,无论是基本编码图像还是冗余编码图像都必须遵守q个规则
5.基本~码囑փ的所有片D(sliceQ单元和数据划分片段Qdata partitionQ单元必d属于相应冗余~码囑փ的片D(sliceQ单元和数据划分片段Qdata partitionQ单元之前?br />
6.如果数据中出现?jin)连l的无参考基本编码图像,则图像序号小的在前面?br />
7.如果arbitrary_slice_order_allowed_flag|ؓ(f)1Q一个基本编码图像中的片D(sliceQ单元和数据划分片段Qdata partitionQ单元的序是Q意的Q如果arbitrary_slice_order_allowed_flag|ؓ(f)Ӟ则要按照片段中第一个宏块的位置来确定片D늚序Q若使用数据划分Q则AcL据划分片D在BcL据划分片D之前,BcL据划分片D在CcL据划分片D之前,而且对应不同片段的数据划分片D不能相互交叉,也不能与没有数据划分的片D늛互交叉?br />
8.如果存在SEIQ补充增Z息)(j) 单元的话Q它必须在它所对应的基本编码图像的片段QsliceQ单元和数据划分片段Qdata partitionQ单元之前,q同时必ȝ接在上一个基本编码图像的所有片D(sliceQ单元和数据划分片段Qdata partitionQ单元后辏V假如SEI属于多个基本~码囑փQ其序仅以W一个基本编码图像ؓ(f)参照?br />
9.如果存在囑փ分割W的话,它必d所有SEI 单元、基本编码图像的所有片DsliceQ单元和数据划分片段Qdata partitionQ单元之前,q且紧接着上一个基本编码图像那些NAL单元?br />
10.如果存在序列l束W,且序列结束符后还有图像,则该囑փ必须是IDRQ即时解码器hQ图像。序列结束符的位|应当在属于q个IDR囑փ的分割符、SEI 单元{数据之前,且紧接着前面那些囑փ的NAL单元。如果序列结束符后没有图像了(jin)Q那么它的就在比Ҏ(gu)中所有图像数据之后?br />
11.结束符在比Ҏ(gu)中的最后?/p>
本文来自CSDN博客Q{载请标明出处Qfile:///D:/新徏文g?桌面/H_264中的NAL技?20-%20Bolt%20的专?20-%20CSDN博客.htm