﻿<?xml version="1.0" encoding="utf-8" standalone="yes"?><rss version="2.0" xmlns:dc="http://purl.org/dc/elements/1.1/" xmlns:trackback="http://madskills.com/public/xml/rss/module/trackback/" xmlns:wfw="http://wellformedweb.org/CommentAPI/" xmlns:slash="http://purl.org/rss/1.0/modules/slash/"><channel><title>IT博客-十三郎的IT生活-随笔分类-基础知识</title><link>http://www.cnitblog.com/shisanlangd/category/8040.html</link><description /><language>zh-cn</language><lastBuildDate>Mon, 17 Mar 2014 01:02:21 GMT</lastBuildDate><pubDate>Mon, 17 Mar 2014 01:02:21 GMT</pubDate><ttl>60</ttl><item><title>iOS的 BOOL bool  Boolean boolean_t区别</title><link>http://www.cnitblog.com/shisanlangd/archive/2014/03/12/89314.html</link><dc:creator>十三郎</dc:creator><author>十三郎</author><pubDate>Wed, 12 Mar 2014 13:04:00 GMT</pubDate><guid>http://www.cnitblog.com/shisanlangd/archive/2014/03/12/89314.html</guid><wfw:comment>http://www.cnitblog.com/shisanlangd/comments/89314.html</wfw:comment><comments>http://www.cnitblog.com/shisanlangd/archive/2014/03/12/89314.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.cnitblog.com/shisanlangd/comments/commentRss/89314.html</wfw:commentRss><trackback:ping>http://www.cnitblog.com/shisanlangd/services/trackbacks/89314.html</trackback:ping><description><![CDATA[@import url(http://www.cnitblog.com/CuteSoft_Client/CuteEditor/Load.ashx?type=style&file=SyntaxHighlighter.css);@import url(/css/cuteeditor.css);
<div><br />
</div>
<div>1.</div>
<div>BOOL<span class="Apple-tab-span" style="white-space:pre">		</span>typedef signed char BOOL;</div>
<div><br />
</div>
<div>YES<span class="Apple-tab-span" style="white-space:pre">			</span>#define YES (BOOL)1</div>
<div>NO<span class="Apple-tab-span" style="white-space:pre">			</span>#define NO &nbsp;(BOOL)0</div>
<div><br />
</div>
<div>BOOL 使用了一个8 位（一个字节）的整数进行表示，8 位全0 就是NO。</div>
<div>2^8 = 512</div>
<div>&nbsp;8960 用二进制表示是大于8 位的，也就是说高位无效，</div>
<div>只保留8960 的低八位，8960 的低八位恰好全都是0，因此8960 就是NO 了</div>
<div>因此在Objective-C中一定要注意这个问题，非零值未必是BOOL 的YES，但是0 一定是NO。</div>
<div><br />
</div>
<div><br />
</div>
<div>2.</div>
<div>bool<span class="Apple-tab-span" style="white-space:pre">	</span>&nbsp; &nbsp;c语言<span class="Apple-tab-span" style="white-space: pre;">	</span>int</div>
<div>Defined in stdbool.h, ISO C/C++ standard type</div>
<div>true<span class="Apple-tab-span" style="white-space:pre">	</span>&nbsp; &nbsp; 非0</div>
<div>false &nbsp;<span class="Apple-tab-span" style="white-space:pre">	</span>0</div>
<div><br />
</div>
<div><br />
</div>
<div>3.</div>
<div>Boolean<span class="Apple-tab-span" style="white-space:pre">		</span>unsigned char type</div>
<div>Mac OS historic type, sizeof(Boolean)==1</div>
<div><br />
</div>
<div><br />
</div>
<div>4.</div>
<div>boolean_t&nbsp;<span class="Apple-tab-span" style="white-space:pre">	</span>int type</div>
<div><br />
</div>
<div>#ifndef<span class="Apple-tab-span" style="white-space:pre">	</span>_MACH_I386_BOOLEAN_H_</div>
<div>#define _MACH_I386_BOOLEAN_H_</div>
<div><br />
</div>
<div>#if defined(__x86_64__) &amp;&amp; !defined(KERNEL)</div>
<div>typedef unsigned int<span class="Apple-tab-span" style="white-space:pre">	</span>boolean_t;</div>
<div>#else</div>
<div>typedef int<span class="Apple-tab-span" style="white-space:pre">		</span>boolean_t;</div>
<div>#endif</div>
<div><br />
</div>
<div>#endif<span class="Apple-tab-span" style="white-space:pre">	</span>/* _MACH_I386_BOOLEAN_H_ */</div>
<div><br />
</div>
<img src ="http://www.cnitblog.com/shisanlangd/aggbug/89314.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.cnitblog.com/shisanlangd/" target="_blank">十三郎</a> 2014-03-12 21:04 <a href="http://www.cnitblog.com/shisanlangd/archive/2014/03/12/89314.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>ASCII字符编码表</title><link>http://www.cnitblog.com/shisanlangd/archive/2011/06/07/74350.html</link><dc:creator>十三郎</dc:creator><author>十三郎</author><pubDate>Tue, 07 Jun 2011 02:28:00 GMT</pubDate><guid>http://www.cnitblog.com/shisanlangd/archive/2011/06/07/74350.html</guid><wfw:comment>http://www.cnitblog.com/shisanlangd/comments/74350.html</wfw:comment><comments>http://www.cnitblog.com/shisanlangd/archive/2011/06/07/74350.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.cnitblog.com/shisanlangd/comments/commentRss/74350.html</wfw:commentRss><trackback:ping>http://www.cnitblog.com/shisanlangd/services/trackbacks/74350.html</trackback:ping><description><![CDATA[<div><strong>ASCII字符编码表</strong>附录<br />
附录A ASCII字符编码表 <br />
<table border="1" cellpadding="0" cellspacing="0">
     <tbody>
         <tr>
             <td><br />
             ASCII值 </td>
             <td>控制字符</td>
             <td>ASCII值</td>
             <td>控制字符</td>
             <td>ASCII值</td>
             <td>控制字符</td>
             <td>ASCII值</td>
             <td>控制字符<strong> </strong></td>
         </tr>
         <tr>
             <td>0</td>
             <td>NUT</td>
             <td>32</td>
             <td>(space)</td>
             <td>64</td>
             <td>@</td>
             <td>96</td>
             <td>、</td>
         </tr>
         <tr>
             <td>1</td>
             <td>SOH</td>
             <td>33</td>
             <td>！</td>
             <td>65</td>
             <td>A</td>
             <td>97</td>
             <td>a</td>
         </tr>
         <tr>
             <td>2</td>
             <td>STX</td>
             <td>34</td>
             <td>&#8221;</td>
             <td>66</td>
             <td>B</td>
             <td>98</td>
             <td>b</td>
         </tr>
         <tr>
             <td>3</td>
             <td>ETX</td>
             <td>35</td>
             <td>#</td>
             <td>67</td>
             <td>C</td>
             <td>99</td>
             <td>c</td>
         </tr>
         <tr>
             <td>4</td>
             <td>EOT</td>
             <td>36</td>
             <td>$</td>
             <td>68</td>
             <td>D</td>
             <td>100</td>
             <td>d</td>
         </tr>
         <tr>
             <td>5</td>
             <td>ENQ</td>
             <td>37</td>
             <td>%</td>
             <td>69</td>
             <td>E</td>
             <td>101</td>
             <td>e</td>
         </tr>
         <tr>
             <td>6</td>
             <td>ACK</td>
             <td>38</td>
             <td>&amp;</td>
             <td>70</td>
             <td>F</td>
             <td>102</td>
             <td>f</td>
         </tr>
         <tr>
             <td>7</td>
             <td>BEL</td>
             <td>39</td>
             <td>,</td>
             <td>71</td>
             <td>G</td>
             <td>103</td>
             <td>g</td>
         </tr>
         <tr>
             <td>8</td>
             <td>BS</td>
             <td>40</td>
             <td>(</td>
             <td>72</td>
             <td>H</td>
             <td>104</td>
             <td>h</td>
         </tr>
         <tr>
             <td>9</td>
             <td>HT</td>
             <td>41</td>
             <td>)</td>
             <td>73</td>
             <td>I</td>
             <td>105</td>
             <td>i</td>
         </tr>
         <tr>
             <td>10</td>
             <td>LF</td>
             <td>42</td>
             <td>*</td>
             <td>74</td>
             <td>J</td>
             <td>106</td>
             <td>j</td>
         </tr>
         <tr>
             <td>11</td>
             <td>VT</td>
             <td>43</td>
             <td>+</td>
             <td>75</td>
             <td>K</td>
             <td>107</td>
             <td>k</td>
         </tr>
         <tr>
             <td>12</td>
             <td>FF</td>
             <td>44</td>
             <td>,</td>
             <td>76</td>
             <td>L</td>
             <td>108</td>
             <td>l</td>
         </tr>
         <tr>
             <td>13</td>
             <td>CR</td>
             <td>45</td>
             <td>-</td>
             <td>77</td>
             <td>M</td>
             <td>109</td>
             <td>m</td>
         </tr>
         <tr>
             <td>14</td>
             <td>SO</td>
             <td>46</td>
             <td>.</td>
             <td>78</td>
             <td>N</td>
             <td>110</td>
             <td>n</td>
         </tr>
         <tr>
             <td>15</td>
             <td>SI</td>
             <td>47</td>
             <td>/</td>
             <td>79</td>
             <td>O</td>
             <td>111</td>
             <td>o</td>
         </tr>
         <tr>
             <td>16</td>
             <td>DLE</td>
             <td>48</td>
             <td>0</td>
             <td>80</td>
             <td>P</td>
             <td>112</td>
             <td>p</td>
         </tr>
         <tr>
             <td>17</td>
             <td>DCI</td>
             <td>49</td>
             <td>1</td>
             <td>81</td>
             <td>Q</td>
             <td>113</td>
             <td>q</td>
         </tr>
         <tr>
             <td>18</td>
             <td>DC2</td>
             <td>50</td>
             <td>2</td>
             <td>82</td>
             <td>R</td>
             <td>114</td>
             <td>r</td>
         </tr>
         <tr>
             <td>19</td>
             <td>DC3</td>
             <td>51</td>
             <td>3</td>
             <td>83</td>
             <td>X</td>
             <td>115</td>
             <td>s</td>
         </tr>
         <tr>
             <td>20</td>
             <td>DC4</td>
             <td>52</td>
             <td>4</td>
             <td>84</td>
             <td>T</td>
             <td>116</td>
             <td>t</td>
         </tr>
         <tr>
             <td>21</td>
             <td>NAK</td>
             <td>53</td>
             <td>5</td>
             <td>85</td>
             <td>U</td>
             <td>117</td>
             <td>u</td>
         </tr>
         <tr>
             <td>22</td>
             <td>SYN</td>
             <td>54</td>
             <td>6</td>
             <td>86</td>
             <td>V</td>
             <td>118</td>
             <td>v</td>
         </tr>
         <tr>
             <td>23</td>
             <td>TB</td>
             <td>55</td>
             <td>7</td>
             <td>87</td>
             <td>W</td>
             <td>119</td>
             <td>w</td>
         </tr>
         <tr>
             <td>24</td>
             <td>CAN</td>
             <td>56</td>
             <td>8</td>
             <td>88</td>
             <td>X</td>
             <td>120</td>
             <td>x</td>
         </tr>
         <tr>
             <td>25</td>
             <td>EM</td>
             <td>57</td>
             <td>9</td>
             <td>89</td>
             <td>Y</td>
             <td>121</td>
             <td>y</td>
         </tr>
         <tr>
             <td>26</td>
             <td>SUB</td>
             <td>58</td>
             <td>:</td>
             <td>90</td>
             <td>Z</td>
             <td>122</td>
             <td>z</td>
         </tr>
         <tr>
             <td>27</td>
             <td>ESC</td>
             <td>59</td>
             <td>;</td>
             <td>91</td>
             <td>[</td>
             <td>123</td>
             <td>{</td>
         </tr>
         <tr>
             <td>28</td>
             <td>FS</td>
             <td>60</td>
             <td>&lt;</td>
             <td>92</td>
             <td>\</td>
             <td>124</td>
             <td>|</td>
         </tr>
         <tr>
             <td>29</td>
             <td>GS</td>
             <td>61</td>
             <td>=</td>
             <td>93</td>
             <td>]</td>
             <td>125</td>
             <td>}</td>
         </tr>
         <tr>
             <td>30</td>
             <td>RS</td>
             <td>62</td>
             <td>&gt;</td>
             <td>94</td>
             <td>^</td>
             <td>126</td>
             <td>~</td>
         </tr>
         <tr>
             <td>31</td>
             <td>US</td>
             <td>63</td>
             <td>?</td>
             <td>95</td>
             <td>&#8212;</td>
             <td>127</td>
             <td>DEL</td>
         </tr>
     </tbody>
</table>
ASCII值为十进制数，控制字符的含义如下表所示。 <br />
<table border="1" cellpadding="0" cellspacing="0" height="276" width="367">
     <tbody>
         <tr>
             <td><br />
             NUL 空 </td>
             <td>VT 垂直制表</td>
             <td>SYN 空转同步</td>
         </tr>
         <tr>
             <td>SOH 标题开始</td>
             <td>FF 走纸控制</td>
             <td>ETB 信息组传送结束</td>
         </tr>
         <tr>
             <td>STX 正文开始</td>
             <td>CR 回车</td>
             <td>CAN 作废</td>
         </tr>
         <tr>
             <td>ETX 正文结束</td>
             <td>SO 移位输出</td>
             <td>EM 纸尽</td>
         </tr>
         <tr>
             <td>EOY 传输结束</td>
             <td>SI 移位输入</td>
             <td>SUB 换置</td>
         </tr>
         <tr>
             <td>ENQ 询问字符</td>
             <td>DLE 空格</td>
             <td>ESC 换码</td>
         </tr>
         <tr>
             <td>ACK 承认</td>
             <td>DC1 设备控制1</td>
             <td>FS 文字分隔符</td>
         </tr>
         <tr>
             <td>BEL 报警</td>
             <td>DC2 设备控制2</td>
             <td>GS 组分隔符</td>
         </tr>
         <tr>
             <td>BS 退一格</td>
             <td>DC3 设备控制3</td>
             <td>RS 记录分隔符</td>
         </tr>
         <tr>
             <td>HT 横向列表</td>
             <td>DC4 设备控制4</td>
             <td>US 单元分隔符</td>
         </tr>
         <tr>
             <td>LF 换行</td>
             <td>NAK 否定</td>
             <td>DEL 删除<br />
             </td>
         </tr>
     </tbody>
</table>
<img src="http://www.cnitblog.com/images/cnitblog_com/shisanlangd/asciifull.gif" alt="" border="0" height="488" width="715" />
<img src="http://www.cnitblog.com/images/cnitblog_com/shisanlangd/extend.gif" alt="" border="0" height="335" width="573" />
</div><img src ="http://www.cnitblog.com/shisanlangd/aggbug/74350.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.cnitblog.com/shisanlangd/" target="_blank">十三郎</a> 2011-06-07 10:28 <a href="http://www.cnitblog.com/shisanlangd/archive/2011/06/07/74350.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>特殊用途的IP地址介绍</title><link>http://www.cnitblog.com/shisanlangd/archive/2008/07/14/46709.html</link><dc:creator>十三郎</dc:creator><author>十三郎</author><pubDate>Mon, 14 Jul 2008 08:42:00 GMT</pubDate><guid>http://www.cnitblog.com/shisanlangd/archive/2008/07/14/46709.html</guid><wfw:comment>http://www.cnitblog.com/shisanlangd/comments/46709.html</wfw:comment><comments>http://www.cnitblog.com/shisanlangd/archive/2008/07/14/46709.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.cnitblog.com/shisanlangd/comments/commentRss/46709.html</wfw:commentRss><trackback:ping>http://www.cnitblog.com/shisanlangd/services/trackbacks/46709.html</trackback:ping><description><![CDATA[<p>&nbsp;&nbsp;&nbsp; 一、0.0.0.0 <br><br>&nbsp;&nbsp;&nbsp;
严格说来，0.0.0.0已经不是一个真正意义上的IP地址了。它表示的是这样一个集合：所有不清楚的主机和目的网络。这里的&#8220;不清楚&#8221;是指在本机的路由表里没有特定条目指明如何到达。对本机来说，它就是一个&#8220;收容所&#8221;，所有不认识的&#8220;三无&#8221;人员，一律送进去。如果你在网络设置中设置了缺省网关，那么Windows系统会自动产生一个目的地址为0.0.0.0的缺省路由。&nbsp;<br><br>&nbsp;&nbsp;&nbsp;
二、255.255.255.255 <br><br>&nbsp;&nbsp;&nbsp;
限制广播地址。对本机来说，这个地址指本网段内(同一广播域)的所有主机。如果翻译成人类的语言，应该是这样：&#8220;这个房间里的所有人都注意了！&#8221;这个地址不能被路由器转发。&nbsp;<br><br>&nbsp;&nbsp;&nbsp;
三、127.0.0.1 <br><br>&nbsp;&nbsp;&nbsp;
本机地址，主要用于测试。用汉语表示，就是&#8220;我自己&#8221;。在Windows系统中，这个地址有一个别名&#8220;Localhost&#8221;。寻址这样一个地址，是不能把它发到网络接口的。除非出错，否则在传输介质上永远不应该出现目的地址为&#8220;127.0.0.1&#8221;的数据包。
</p>
<p><br>&nbsp;&nbsp;&nbsp; 四、224.0.0.1 <br><br>&nbsp;&nbsp;&nbsp;
组播地址，注意它和广播的区别。从224.0.0.0到239.255.255.255都是这样的地址。224.0.0.1特指所有主机，224.0.0.2特指所有路由器。这样的地址多用于一些特定的程序以及多媒体程序。如果你的主机开启了IRDP(Internet路由发现协议，使用组播功能)功能，那么你的主机路由表中应该有这样一条路由。
<br><br>&nbsp;&nbsp;&nbsp; 五、169.254.x.x <br><br>&nbsp;&nbsp;&nbsp;
如果你的主机使用了DHCP功能自动获得一个IP地址，那么当你的DHCP服务器发生故障，或响应时间太长而超出了一个系统规定的时间，Wingdows系统会为你分配这样一个地址。如果你发现你的主机IP地址是一个诸如此类的地址，很不幸，十有八九是你的网络不能正常运行了。
<br><br>&nbsp;&nbsp;&nbsp; 六、10.x.x.x、172.16。x。x～172.31。x。x、192.168。x。x <br><br>&nbsp;&nbsp;&nbsp;
私有地址，这些地址被大量用于企业内部网络中。一些宽带路由器，也往往使用192.168.1.1作为缺省地址。私有网络由于不与外部互连，因而可能使用随意的IP地址。保留这样的地址供其使用是为了避免以后接入公网时引起地址混乱。使用私有地址的私有网络在接入Internet时，要使用地址翻译(NAT)，将私有地址翻译成公用合法地址。在Internet上，这类地址是不能出现的。&nbsp;<br><br>&nbsp;&nbsp;&nbsp;
对一台网络上的主机来说，它可以正常接收的合法目的网络地址有三种：本机的IP地址、广播地址以及组播地址。</p><img src ="http://www.cnitblog.com/shisanlangd/aggbug/46709.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.cnitblog.com/shisanlangd/" target="_blank">十三郎</a> 2008-07-14 16:42 <a href="http://www.cnitblog.com/shisanlangd/archive/2008/07/14/46709.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>meta标签详解</title><link>http://www.cnitblog.com/shisanlangd/archive/2008/01/21/39159.html</link><dc:creator>十三郎</dc:creator><author>十三郎</author><pubDate>Mon, 21 Jan 2008 11:35:00 GMT</pubDate><guid>http://www.cnitblog.com/shisanlangd/archive/2008/01/21/39159.html</guid><wfw:comment>http://www.cnitblog.com/shisanlangd/comments/39159.html</wfw:comment><comments>http://www.cnitblog.com/shisanlangd/archive/2008/01/21/39159.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.cnitblog.com/shisanlangd/comments/commentRss/39159.html</wfw:commentRss><trackback:ping>http://www.cnitblog.com/shisanlangd/services/trackbacks/39159.html</trackback:ping><description><![CDATA[META标签是HTML语言HEAD区的一个辅助性标签，它位于HTML文档头部的&lt;HEAD&gt;标记和&lt;TITLE&gt;标记之间，它提供用户不可见的信息。下面介绍一些有关标记的例子及解释。 <br />
<br />
META标签分两大部分：HTTP标题信息(HTTP-EQUIV)和页面描述信息(NAME)。 <br />
<br />
&#9733;HTTP-EQUIV <br />
HTTP-EQUIV类似于HTTP的头部协议，它回应给浏览器一些有用的信息，以帮助正确和精确地显示网页内容。常用的HTTP-EQUIV类型有： <br />
<br />
1、Content-Type和Content-Language (显示字符集的设定) <br />
说明：设定页面使用的字符集，用以说明主页制作所使用的文字已经语言，浏览器会根据此来调用相应的字符集显示page内容。 <br />
用法：&lt;Meta http-equiv="Content-Type" Content="text/html; Charset=gb2312"&gt;<br />
&lt;Meta http-equiv="Content-Language" Content="zh-CN"&gt; <br />
<br />
注意：　该META标签定义了HTML页面所使用的字符集为GB2132，就是国标汉字码。如果将其中的&#8220;charset=GB2312&#8221;替换成&#8220;BIG5&#8221;，则该页面所用的字符集就是繁体中文Big5码。当你浏览一些国外的站点时，IE浏览器会提示你要正确显示该页面需要下载xx语支持。这个功能就是通过读取HTML页面META标签的Content-Type属性而得知需要使用哪种字符集显示该页面的。如果系统里没有装相应的字符集，则IE就提示下载。其他的语言也对应不同的charset，比如日文的字符集是&#8220;iso-2022-jp &#8221;，韩文的是&#8220;ks_c_5601&#8221;。<br />
<br />
Content-Type的Content还可以是：text/xml等文档类型；<br />
Charset选项：ISO-8859-1(英文)、BIG5、UTF-8、SHIFT-Jis、Euc、Koi8-2、us-ascii, x-mac-roman, iso-8859-2, x-mac-ce, iso-2022-jp, x-sjis, x-euc-jp,euc-kr, iso-2022-kr, gb2312, gb_2312-80, x-euc-tw, x-cns11643-1,x-cns11643-2等字符集；Content-Language的Content还可以是：EN、FR等语言代码。 <br />
<br />
2、Refresh (刷新) <br />
<br />
说明：让网页多长时间（秒）刷新自己，或在多长时间后让网页自动链接到其它网页。<br />
用法：&lt;Meta http-equiv="Refresh" Content="30"&gt;<br />
&lt;Meta http-equiv="Refresh" Content="5; Url=http://www.xia8.net"&gt;<br />
注意：其中的5是指停留5秒钟后自动刷新到URL网址。 <br />
<br />
3、Expires (期限) <br />
<br />
说明：指定网页在缓存中的过期时间，一旦网页过期，必须到服务器上重新调阅。<br />
用法：&lt;Meta http-equiv="Expires" Content="0"&gt;<br />
&lt;Meta http-equiv="Expires" Content="Wed, 26 Feb 1997 08:21:57 GMT"&gt;<br />
注意：必须使用GMT的时间格式，或直接设为0(数字表示多少时间后过期)。 <br />
<br />
4、Pragma (cach模式) <br />
<br />
说明：禁止浏览器从本地机的缓存中调阅页面内容。<br />
用法：&lt;Meta http-equiv="Pragma" Content="No-cach"&gt;<br />
注意：网页不保存在缓存中，每次访问都刷新页面。这样设定，访问者将无法脱机浏览。 <br />
<br />
5、Set-Cookie (cookie设定) <br />
<br />
说明：浏览器访问某个页面时会将它存在缓存中，下次再次访问时就可从缓存中读取，以提高速度。当你希望访问者每次都刷新你广告的图标，或每次都刷新你的计数器，就要禁用缓存了。通常HTML文件没有必要禁用缓存，对于ASP等页面，就可以使用禁用缓存，因为每次看到的页面都是在服务器动态生成的，缓存就失去意义。如果网页过期，那么存盘的cookie将被删除。<br />
用法：&lt;Meta http-equiv="Set-Cookie" Content="cookievalue=xxx; expires=Wednesday,<br />
21-Oct-98 16:14:21 GMT; path=/"&gt;<br />
注意：必须使用GMT的时间格式。 <br />
<br />
6、Window-target (显示窗口的设定) <br />
<br />
说明：强制页面在当前窗口以独立页面显示。<br />
用法：&lt;Meta http-equiv="Widow-target" Content="_top"&gt;<br />
注意：这个属性是用来防止别人在框架里调用你的页面。Content选项：_blank、_top、_self、_parent。 <br />
<br />
7、Pics-label (网页RSAC等级评定)<br />
说明：在IE的Internet选项中有一项内容设置，可以防止浏览一些受限制的网站，而网站的限制级<br />
别就是通过该参数来设置的。<br />
用法：&lt;META http-equiv="Pics-label" Contect=<br />
"(PICS－1.1'http://www.rsac.org/ratingsv01.html'<br />
I gen comment 'RSACi North America Sever' by 'inet@microsoft.com' <br />
for 'http://www.microsoft.com' on '1997.06.30T14:21－0500' r(n0 s0 v0 l0))"&gt; <br />
<br />
注意：不要将级别设置的太高。RSAC的评估系统提供了一种用来评价Web站点内容的标准。用户可以设置Microsoft Internet Explorer（IE3.0以上）来排除包含有色情和暴力内容的站点。上面这个例子中的HTML取自Microsoft的主页。代码中的（n 0 s 0 v 0 l 0）表示该站点不包含不健康内容。级别的评定是由RSAC，即美国娱乐委员会的评级机构评定的，如果你想进一步了解RSAC评估系统的等级内容，或者你需要评价自己的网站，可以访问RSAC的站点：http://www.rsac.org/。 <br />
<br />
8、Page-Enter、Page-Exit (进入与退出) <br />
<br />
说明：这个是页面被载入和调出时的一些特效。<br />
用法：&lt;Meta http-equiv="Page-Enter" Content="blendTrans(Duration=0.5)"&gt;<br />
&lt;Meta http-equiv="Page-Exit" Content="blendTrans(Duration=0.5)"&gt;<br />
注意：blendTrans是动态滤镜的一种，产生渐隐效果。另一种动态滤镜RevealTrans也可以用于页面进入与退出效果: <br />
<br />
&lt;Meta http-equiv="Page-Enter" Content="revealTrans(duration=x, transition=y)"&gt;<br />
&lt;Meta http-equiv="Page-Exit" Content="revealTrans(duration=x, transition=y)"&gt; <br />
<br />
Duration　　表示滤镜特效的持续时间(单位：秒)<br />
Transition　滤镜类型。表示使用哪种特效，取值为0-23。 <br />
<br />
0 矩形缩小<br />
1 矩形扩大<br />
2 圆形缩小<br />
3 圆形扩大<br />
4 下到上刷新<br />
5 上到下刷新<br />
6 左到右刷新<br />
7 右到左刷新<br />
8 竖百叶窗<br />
9 横百叶窗<br />
10 错位横百叶窗<br />
11 错位竖百叶窗<br />
12 点扩散<br />
13 左右到中间刷新<br />
14 中间到左右刷新<br />
15 中间到上下<br />
16 上下到中间<br />
17 右下到左上<br />
18 右上到左下<br />
19 左上到右下<br />
20 左下到右上<br />
21 横条<br />
22 竖条<br />
23 以上22种随机选择一种 <br />
<br />
9、MSThemeCompatible (XP主题)<br />
说明：是否在IE中关闭 xp 的主题<br />
用法：&lt;Meta http-equiv="MSThemeCompatible" Content="Yes"&gt;<br />
注意：关闭 xp 的蓝色立体按钮系统显示样式，从而和win2k 很象。 <br />
<br />
10、IE6 (页面生成器)<br />
说明：页面生成器generator，是ie6<br />
用法：&lt;Meta http-equiv="IE6" Content="Generator"&gt;<br />
注意：用什么东西做的，类似商品出厂厂商。 <br />
<br />
11、Content-Script-Type (脚本相关)<br />
说明：这是近来W3C的规范，指明页面中脚本的类型。<br />
用法：&lt;Meta http-equiv="Content-Script-Type" Content="text/javascript"&gt;<br />
注意： <br />
<br />
12、MSSmartTagsPreventParsing()<br />
说明：一句话哈，就是防止微软页面编辑软件在页面上自动添加标签，保证代码原汁原味<br />
用法：&lt;meta name="MSSmartTagsPreventParsing" content="TRUE"&gt;<br />
<br />
&#9733;NAME变量 <br />
<br />
name是描述网页的，对应于Content（网页内容），以便于搜索引擎机器人查找、分类（目前几乎所有的搜索引擎都使用网上机器人自动查找meta值来给网页分类）。<br />
name的value值（name=""）指定所提供信息的类型。有些值是已经定义好的。例如description(说明)、keyword(关键字)、refresh(刷新)等。还可以指定其他任意值，如：creationdate(创建日期) 、<br />
document ID(文档编号)和level(等级)等。<br />
name的content指定实际内容。如：如果指定level(等级)为value(值)，则Content可能是beginner(初级)、intermediate(中级)、advanced(高级)。 <br />
<br />
1、Keywords (关键字)<br />
说明：为搜索引擎提供的关键字列表<br />
用法：&lt;Meta name="Keywords" Content="关键词1,关键词2，关键词3,关键词4,&#8230;&#8230;"&gt;<br />
注意：各关键词间用英文逗号&#8220;,&#8221;隔开。META的通常用处是指定搜索引擎用来提高搜索质量的关键词。当数个META元素提供文档语言从属信息时，搜索引擎会使用lang特性来过滤并通过用户的语言优先参照来显示搜索结果。例如：<br />
&lt;Meta name="Kyewords" Lang="EN" Content="vacation,greece,sunshine"&gt;<br />
&lt;Meta name="Kyewords" Lang="FR" Content="vacances,gr&#232;:ce,soleil"&gt; <br />
<br />
2、Description (简介)<br />
说明：Description用来告诉搜索引擎你的网站主要内容。<br />
用法：&lt;Meta name="Description" Content="你网页的简述"&gt;<br />
注意： <br />
<br />
3、Robots (机器人向导)<br />
说明：Robots用来告诉搜索机器人哪些页面需要索引，哪些页面不需要索引。Content的参数有all、none、index、noindex、follow、nofollow。默认是all。<br />
用法：&lt;Meta name="Robots" Content="All|None|Index|Noindex|Follow|Nofollow"&gt;<br />
注意：许多搜索引擎都通过放出robot/spider搜索来登录网站，这些robot/spider就要用到meta元素的一些特性来决定怎样登录。 <br />
<br />
all：文件将被检索，且页面上的链接可以被查询；<br />
none：文件将不被检索，且页面上的链接不可以被查询；(和 "noindex, no follow" 起相同作用)<br />
index：文件将被检索；（让robot/spider登录）<br />
follow：页面上的链接可以被查询；<br />
noindex：文件将不被检索，但页面上的链接可以被查询；(不让robot/spider登录)<br />
nofollow：文件将不被检索，页面上的链接可以被查询。(不让robot/spider顺着此页的连接往下探找) <br />
<br />
4、Author (作者)<br />
说明：标注网页的作者或制作组<br />
用法：&lt;Meta name="Author" Content="张三，abc@sina.com"&gt;<br />
注意：Content可以是：你或你的制作组的名字,或Email <br />
<br />
5、Copyright (版权)<br />
说明：标注版权<br />
用法：&lt;Meta name="Copyright" Content="本页版权归Zerospace所有。All Rights Reserved"&gt;<br />
注意： <br />
<br />
6、Generator (编辑器)<br />
说明：编辑器的说明<br />
用法：&lt;Meta name="Generator" Content="PCDATA|FrontPage|"&gt;<br />
注意：Content="你所用编辑器" <br />
<br />
7、revisit-after (重访)<br />
说明：<br />
用法：&lt;META name="revisit-after" CONTENT="7 days" &gt;<br />
注意： <br />
<br />
<br />
&#9733;Head中的其它一些用法 <br />
<br />
1、scheme (方案)<br />
说明：scheme can be used when name is used to specify how the value of content should<br />
be interpreted.<br />
用法：&lt;meta scheme="ISBN" name="identifier" content="0-14-043205-1" /&gt;<br />
注意： <br />
<br />
2、Link (链接)<br />
说明：链接到文件<br />
用法：&lt;Link href="soim.ico" rel="Shortcut Icon"&gt;<br />
注意：很多网站如果你把她保存在收件夹中后，会发现它连带着一个小图标，如果再次点击进入之后还会发现地址栏中也有个小图标。现在只要在你的页头加上这段话，就能轻松实现这一功能。&lt;LINK&gt; 用来将目前文件与其它 URL 作连结，但不会有连结按钮，用於 &lt;HEAD&gt; 标记间， 格式如下： <br />
&lt;link href="URL" rel="relationship"&gt; <br />
&lt;link href="URL" rev="relationship"&gt; <br />
<br />
3、Base (基链接)<br />
说明：插入网页基链接属性<br />
用法：&lt;Base href="http://www.fl86.com/" target="_blank"&gt;<br />
注意：你网页上的所有相对路径在链接时都将在前面加上&#8220;http://www.fl86.com/&#8221;。其中target="_blank"是链接文件在新的窗口中打开，你可以做其他设置。将&#8220;_blank&#8221;改为&#8220;_parent&#8221;是链接文件将在当前窗口的父级窗口中打开；改为&#8220;_self&#8221;链接文件在当前窗口（帧）中打开；改为&#8220;_top&#8221;链接文件全屏显示。<br />
<br />
<br />
缓存<br /><div>//header('Cache-Control: max-age=86400');//缓存一天<br />header('Expires: Mon, 29 Jan 2007 08:56:01 GMT');//指定过期时间<br />header('Last-Modified: '.gmdate('D, d M Y 01:01:01',$time).' GMT');//格林尼治时间,$time是文件添加时候的时间戳<br />2 经常改动的页面&nbsp; &nbsp;类似bbs，论坛程序，这种页面更新速度比较快，缓存的主要作用是防止用户频繁刷新列表，导致服务器数据库负担，既要保证更新的及时性，也要保证缓存能被利用<br />这里一般用Cache-Control来控制，根据论坛的发帖的频率灵活控制max-age。<br />header('Cache-Control: max-age=60');//缓存一分钟<br />header('Last-Modified: '.gmdate('D, d M Y 01:01:01',$time).' GMT');//格林尼治时间,$time是帖子的最后更新时间戳</div><img src ="http://www.cnitblog.com/shisanlangd/aggbug/39159.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.cnitblog.com/shisanlangd/" target="_blank">十三郎</a> 2008-01-21 19:35 <a href="http://www.cnitblog.com/shisanlangd/archive/2008/01/21/39159.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>程序开发中的 alpha、beta、gamma</title><link>http://www.cnitblog.com/shisanlangd/archive/2007/10/10/34650.html</link><dc:creator>十三郎</dc:creator><author>十三郎</author><pubDate>Wed, 10 Oct 2007 07:45:00 GMT</pubDate><guid>http://www.cnitblog.com/shisanlangd/archive/2007/10/10/34650.html</guid><wfw:comment>http://www.cnitblog.com/shisanlangd/comments/34650.html</wfw:comment><comments>http://www.cnitblog.com/shisanlangd/archive/2007/10/10/34650.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.cnitblog.com/shisanlangd/comments/commentRss/34650.html</wfw:commentRss><trackback:ping>http://www.cnitblog.com/shisanlangd/services/trackbacks/34650.html</trackback:ping><description><![CDATA[Beta，这个希腊字母的英文写法，怎么会变成了&#8220;测试&#8221;的含义。据我所知的，广义上对测试有三个传统的称呼，alpha、beta、gamma，用来标
识测试的阶段和范围。alpha 是指内测，即现在说的 CB，指开发团队内部测试的版本或者有限用户体验测试版本。beta
是指公测，即针对所有用户公开的测试版本。然后做过一些修改，成为正式发布的候选版本时（现在叫做 RC - Release
Candidate），叫做 gamma。 <img src ="http://www.cnitblog.com/shisanlangd/aggbug/34650.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.cnitblog.com/shisanlangd/" target="_blank">十三郎</a> 2007-10-10 15:45 <a href="http://www.cnitblog.com/shisanlangd/archive/2007/10/10/34650.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>关于23种设计模式的有趣见解</title><link>http://www.cnitblog.com/shisanlangd/archive/2007/09/29/34201.html</link><dc:creator>十三郎</dc:creator><author>十三郎</author><pubDate>Sat, 29 Sep 2007 15:52:00 GMT</pubDate><guid>http://www.cnitblog.com/shisanlangd/archive/2007/09/29/34201.html</guid><wfw:comment>http://www.cnitblog.com/shisanlangd/comments/34201.html</wfw:comment><comments>http://www.cnitblog.com/shisanlangd/archive/2007/09/29/34201.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.cnitblog.com/shisanlangd/comments/commentRss/34201.html</wfw:commentRss><trackback:ping>http://www.cnitblog.com/shisanlangd/services/trackbacks/34201.html</trackback:ping><description><![CDATA[<p><font face="Verdana">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 作者以轻松的语言比喻了java的23种模式，有很好的启发作用。 </font></p>
<p><font face="Verdana">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 创建型模式 <br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 1、FACTORY—追MM少不了请吃饭了，麦当劳的鸡翅和肯德基的鸡翅都是MM爱吃的东西，虽然口味有所不同，但不管你带MM去麦当劳或肯德基，只管向服务员说&#8220;来四个鸡翅&#8221;就行了。麦当劳和肯德基就是生产鸡翅的Factory <br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 工厂模式：客户类和工厂类分开。消费者任何时候需要某种产品，只需向工厂请求即可。消费者无须修改就可以接纳新产品。缺点是当产品修改时，工厂类也要做相应的修改。如：如何创建及如何向<a href="http://www.itisedu.com/phrase/200603082208195.html" target="_new">客户端</a>提供。 <br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
2、BUILDER—MM最爱听的就是&#8220;我爱你&#8221;这句话了，见到不同地方的MM,要能够用她们的方言跟她说这句话哦，我有一个多种语言翻译机，上面每种语
言都有一个按键，见到MM我只要按对应的键，它就能够用相应的语言说出&#8220;我爱你&#8221;这句话了，国外的MM也可以轻松搞掂，这就是我的&#8220;我爱你&#8221;
builder。（这一定比美军在伊拉克用的翻译机好卖） <br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 建造模式：将产品的内部表象和产品的生成过程分割开来，从而使一个建造过程生成具有不同的内部表象的产品<a href="http://www.itisedu.com/phrase/200603090845215.html" target="_new">对象</a>。建造模式使得产品内部表象可以独立的变化，客户不必知道产品内部组成的细节。建造模式可以强制实行一种分步骤进行的建造过程。 <br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
3、FACTORY METHOD—请MM去麦当劳吃汉堡，不同的MM有不同的口味，要每个都记住是一件烦人的事情，我一般采用Factory
Method模式，带着MM到服务员那儿，说&#8220;要一个汉堡&#8221;，具体要什么样的汉堡呢，让MM直接跟服务员说就行了。 <br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 工厂方法模式：核心工厂类不再负责所有产品的创建，而是将具体创建的工作交给子类去做，成为一个抽象工厂角色，仅负责给出具体工厂类必须实现的接口，而不接触哪一个产品类应当被实例化这种细节。 <br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 4、PROTOTYPE—跟MM用QQ聊天，一定要说些深情的话语了，我搜集了好多肉麻的情话，需要时只要copy出来放到QQ里面就行了，这就是我的情话prototype了。（100块钱一份，你要不要） <br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
原始模型模式：通过给出一个原型对象来指明所要创建的对象的类型，然后用复制这个原型对象的方法创建出更多同类型的对象。原始模型模式允许动态的增加或减
少产品类，产品类不需要非得有任何事先确定的等级结构，原始模型模式适用于任何的等级结构。缺点是每一个类都必须配备一个克隆方法。 <br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 5、SINGLETON—俺有6个漂亮的老婆，她们的老公都是我，我就是我们家里的老公Sigleton，她们只要说道&#8220;老公&#8221;，都是指的同一个人，那就是我(刚才做了个梦啦，哪有这么好的事) <br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 单例模式：单例模式确保某一个类只有一个实例，而且自行实例化并向整个系统提供这个实例单例模式。单例模式只应在有真正的&#8220;单一实例&#8221;的需求时才可使用。 <br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 结构型模式 <br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 6、ADAPTER—在朋友聚会上碰到了一个美女Sarah，从香港来的，可我不会说粤语，她不会说普通话，只好求助于我的朋友kent了，他作为我和Sarah之间的Adapter，让我和Sarah可以相互交谈了(也不知道他会不会耍我) <br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 适配器（变压器）模式：把一个类的接口变换成客户端所期待的另一种接口，从而使原本因接口原因不匹配而无法一起工作的两个类能够一起工作。适配类可以根据参数返还一个合适的实例给客户端。 <br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
7、BRIDGE—早上碰到MM，要说早上好，晚上碰到MM，要说晚上好；碰到MM穿了件新衣服，要说你的衣服好漂亮哦，碰到MM新做的发型，要说你的头
发好漂亮哦。不要问我&#8220;早上碰到MM新做了个发型怎么说&#8221;这种问题，自己用BRIDGE组合一下不就行了 <br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 桥梁模式：将抽象化与实现化脱耦，使得二者可以独立的变化，也就是说将他们之间的强关联变成弱关联，也就是指在一个<a href="http://www.itisedu.com/phrase/200602281706245.html" target="_new">软件系统</a>的抽象化和实现化之间使用组合/聚合关系而不是继承关系，从而使两者可以独立的变化。 <br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
8、COMPOSITE—Mary今天过生日。&#8220;我过生日，你要送我一件礼物。&#8221;&#8220;嗯，好吧，去商店，你自己挑。&#8221;&#8220;这件T恤挺漂亮，买，这条裙子好看，
买，这个包也不错，买。&#8221;&#8220;喂，买了三件了呀，我只答应送一件礼物的哦。&#8221;&#8220;什么呀，T恤加裙子加包包，正好配成一套呀，小姐，麻烦你包起来。&#8221;
&#8220;&#8230;&#8230;&#8221;，MM都会用Composite模式了，你会了没有？ <br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 合成模式：合成模式将对象组织到树结构中，可以用来描述整体与部分的关系。合成模式就是一个处理对象的树结构的模式。合成模式把部分与整体的关系用树结构表示出来。合成模式使得客户端把一个个单独的成分对象和由他们复合而成的合成对象同等看待。 <br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
9、DECORATOR—Mary过完轮到Sarly过生日，还是不要叫她自己挑了，不然这个月伙食费肯定玩完，拿出我去年在华山顶上照的照片，在背面写
上&#8220;最好的的礼物，就是爱你的Fita&#8221;，再到街上礼品店买了个像框（卖礼品的MM也很漂亮哦），再找隔壁搞美术设计的Mike设计了一个漂亮的盒子装起
来&#8230;&#8230;，我们都是Decorator，最终都在修饰我这个人呀，怎么样，看懂了吗？ <br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 装饰模式：装饰模式以对客户端透明的方式扩展对象的功能，是继承关系的一个替代方案，提供比继承更多的灵活性。动态给一个对象增加功能，这些功能可以再动态的撤消。增加由一些基本功能的排列组合而产生的非常大量的功能。 <br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
10、FACADE—我有一个专业的Nikon相机，我就喜欢自己手动调光圈、快门，这样照出来的照片才专业，但MM可不懂这些，教了半天也不会。幸好相
机有Facade设计模式，把相机调整到自动档，只要对准目标按快门就行了，一切由相机自动调整，这样MM也可以用这个相机给我拍张照片了。 <br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 门面模式：外部与一个<a href="http://www.itisedu.com/phrase/200604161433025.html" target="_new">子系统</a>的通信必须通过一个统一的门面对象进行。门面模式提供一个高层次的接口，使得子系统更易于使用。每一个子系统只有一个门面类，而且此门面类只有一个实例，也就是说它是一个单例模式。但整个系统可以有多个门面类。 <br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
11、FLYWEIGHT—每天跟MM发短信，手指都累死了，最近买了个新手机，可以把一些常用的句子存在手机里，要用的时候，直接拿出来，在前面加上
MM的名字就可以发送了，再不用一个字一个字敲了。共享的句子就是Flyweight，MM的名字就是提取出来的外部特征，根据上下文情况使用。 <br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
享元模式：FLYWEIGHT在拳击比赛中指最轻量级。享元模式以共享的方式高效的支持大量的细粒度对象。享元模式能做到共享的关键是区分内蕴状态和外蕴
状态。内蕴状态存储在享元内部，不会随环境的改变而有所不同。外蕴状态是随环境的改变而改变的。外蕴状态不能影响内蕴状态，它们是相互独立的。将可以共享
的状态和不可以共享的状态从常规类中区分开来，将不可以共享的状态从类里剔除出去。客户端不可以直接创建被共享的对象，而应当使用一个工厂对象负责创建被
共享的对象。享元模式大幅度的降低内存中对象的数量。 <br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 12、PROXY—跟MM在网上聊天，一开头总是&#8220;hi,你好&#8221;,&#8220;你从哪儿来呀？&#8221;&#8220;你多大了？&#8221;&#8220;身高多少呀？&#8221;这些话，真烦人，写个程序做为我的Proxy吧，凡是接收到这些话都设置好了自动的回答，接收到其他的话时再通知我回答，怎么样，酷吧。 <br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
代理模式：代理模式给某一个对象提供一个代理对象，并由代理对象控制对源对象的引用。代理就是一个人或一个机构代表另一个人或者一个机构采取行动。某些情
况下，客户不想或者不能够直接引用一个对象，代理对象可以在客户和目标对象直接起到中介的作用。客户端分辨不出代理主题对象与真实主题对象。代理模式可以
并不知道真正的被代理对象，而仅仅持有一个被代理对象的接口，这时候代理对象不能够创建被代理对象，被代理对象必须有系统的其他角色代为创建并传入。 <br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 行为模式 <br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
13、CHAIN OF
RESPONSIBLEITY—晚上去上英语课，为了好开溜坐到了最后一排，哇，前面坐了好几个漂亮的MM哎，找张纸条，写上&#8220;Hi,可以做我的女朋友
吗？如果不愿意请向前传&#8221;，纸条就一个接一个的传上去了，糟糕，传到第一排的MM把纸条传给老师了，听说是个老处女呀，快跑! <br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 责任链模式：在责任链模式中，很多对象由每一个对象对其下家的引用而接 <br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
起来形成一条链。请求在这个链上传递，直到链上的某一个对象决定处理此请求。客户并不知道链上的哪一个对象最终处理这个请求，系统可以在不影响客户端的情
况下动态的重新组织链和分配责任。处理者有两个选择：承担责任或者把责任推给下家。一个请求可以最终不被任何接收端对象所接受。 <br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
14、COMMAND—俺有一个MM家里管得特别严，没法见面，只好借助于她弟弟在我们俩之间传送信息，她对我有什么指示，就写一张纸条让她弟弟带给我。
这不，她弟弟又传送过来一个COMMAND，为了感谢他，我请他吃了碗杂酱面，哪知道他说：&#8220;我同时给我姐姐三个男朋友送COMMAND，就数你最小气，
才请我吃面。&#8221;，:-( <br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
命令模式：命令模式把一个请求或者操作封装到一个对象中。命令模式把发出命令的责任和执行命令的责任分割开，委派给不同的对象。命令模式允许请求的一方和
发送的一方独立开来，使得请求的一方不必知道接收请求的一方的接口，更不必知道请求是怎么被接收，以及操作是否执行，何时被执行以及是怎么被执行的。系统
支持命令的撤消。 <br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 15、INTERPRETER—俺有一个《泡MM真经》，上面有各种泡MM的攻略，比如说去吃西餐的步骤、去看电影的方法等等，跟MM约会时，只要做一个Interpreter，照着上面的脚本执行就可以了。 <br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
解释器模式：给定一个语言后，解释器模式可以定义出其文法的一种表示，并同时提供一个解释器。客户端可以使用这个解释器来解释这个语言中的句子。解释器模
式将描述怎样在有了一个简单的文法后，使用模式设计解释这些语句。在解释器模式里面提到的语言是指任何解释器对象能够解释的任何组合。在解释器模式中需要
定义一个代表文法的命令类的等级结构，也就是一系列的组合规则。每一个命令对象都有一个解释方法，代表对命令对象的解释。命令对象的等级结构中的对象的任
何排列组合都是一个语言。 <br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 16、ITERATOR—我爱上了Mary，不顾一切的向她求婚。 <br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; Mary：&#8220;想要我跟你结婚，得答应我的条件&#8221; <br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 我：&#8220;什么条件我都答应，你说吧&#8221; <br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; Mary：&#8220;我看上了那个一克拉的钻石&#8221; <br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 我：&#8220;我买，我买，还有吗？&#8221; <br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; Mary：&#8220;我看上了湖边的那栋别墅&#8221; <br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 我：&#8220;我买，我买，还有吗？&#8221; <br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; Mary：&#8220;你的小弟弟必须要有50<a href="http://www.itisedu.com/phrase/200604231316585.html" target="_new">cm</a>长&#8221; <br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 我脑袋嗡的一声，坐在椅子上，一咬牙：&#8220;我剪，我剪，还有吗？&#8221; <br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &#8230;&#8230; <br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
迭代子模式：迭代子模式可以顺序访问一个聚集中的元素而不必暴露聚集的内部表象。多个对象聚在一起形成的总体称之为聚集，聚集对象是能够包容一组对象的容
器对象。迭代子模式将迭代逻辑封装到一个独立的子对象中，从而与聚集本身隔开。迭代子模式简化了聚集的界面。每一个聚集对象都可以有一个或一个以上的迭代
子对象，每一个迭代子的迭代状态可以是彼此独立的。迭代算法可以独立于聚集角色变化。 <br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 17、MEDIATOR—四个MM打麻将，相互之间谁应该给谁多少钱算不清楚了，幸亏当时我在旁边，按照各自的筹码数算钱，赚了钱的从我这里拿，赔了钱的也付给我，一切就OK啦，俺得到了四个MM的电话。 <br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
调停者模式：调停者模式包装了一系列对象相互作用的方式，使得这些对象不必相互明显作用。从而使他们可以松散偶合。当某些对象之间的作用发生改变时，不会
立即影响其他的一些对象之间的作用。保证这些作用可以彼此独立的变化。调停者模式将多对多的相互作用转化为一对多的相互作用。调停者模式将对象的行为和协
作抽象化，把对象在小尺度的行为上与其他对象的相互作用分开处理。 <br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 18、MEMENTO—同时跟几个MM聊天时，一定要记清楚刚才跟MM说了些什么话，不然MM发现了会不高兴的哦，幸亏我有个备忘录，刚才与哪个MM说了什么话我都拷贝一份放到备忘录里面保存，这样可以随时察看以前的记录啦。 <br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 备忘录模式：备忘录对象是一个用来存储另外一个对象内部状态的快照的对象。备忘录模式的用意是在不破坏封装的条件下，将一个对象的状态捉住，并外部化，存储起来，从而可以在将来合适的时候把这个对象还原到存储起来的状态。 <br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 19、OBSERVER—想知道咱们公司最新MM情报吗？加入公司的MM情报邮件组就行了，tom负责搜集情报，他发现的新情报不用一个一个通知我们，直接发布给邮件组，我们作为订阅者（观察者）就可以及时收到情报啦 <br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 观察者模式：观察者模式定义了一种一队多的依赖关系，让多个观察者对象同时监听某一个主题对象。这个主题对象在状态上发生变化时，会通知所有观察者对象，使他们能够自动更新自己。 <br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
20、STATE—跟MM交往时，一定要注意她的状态哦，在不同的状态时她的行为会有不同，比如你约她今天晚上去看电影，对你没兴趣的MM就会说&#8220;有事情
啦&#8221;，对你不讨厌但还没喜欢上的MM就会说&#8220;好啊，不过可以带上我同事么？&#8221;，已经喜欢上你的MM就会说&#8220;几点钟？看完电影再去泡吧怎么样？&#8221;，当然你看
电影过程中表现良好的话，也可以把MM的状态从不讨厌不喜欢变成喜欢哦。 <br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
状态模式：状态模式允许一个对象在其内部状态改变的时候改变行为。这个对象看上去象是改变了它的类一样。状态模式把所研究的对象的行为包装在不同的状态对
象里，每一个状态对象都属于一个抽象状态类的一个子类。状态模式的意图是让一个对象在其内部状态改变的时候，其行为也随之改变。状态模式需要对每一个系统
可能取得的状态创立一个状态类的子类。当系统的状态变化时，系统便改变所选的子类。 <br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 21、STRATEGY—跟不同类型的MM约会，要用不同的策略，有的请电影比较好，有的则去吃小吃效果不错，有的去海边浪漫最合适，单目的都是为了得到MM的芳心，我的追MM锦囊中有好多Strategy哦。 <br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
策略模式：策略模式针对一组算法，将每一个算法封装到具有共同接口的独立的类中，从而使得它们可以相互替换。策略模式使得算法可以在不影响到客户端的情况
下发生变化。策略模式把行为和环境分开。环境类负责维持和查询行为类，各种算法在具体的策略类中提供。由于算法和环境独立开来，算法的增减，修改都不会影
响到环境和客户端。 <br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 22、TEMPLATE
METHOD——看过《如何说服女生上床》这部经典文章吗？女生从认识到上床的不变的步骤分为巧遇、打破僵局、展开追求、接吻、前戏、动手、爱抚、进去八
大步骤(Template method)，但每个步骤针对不同的情况，都有不一样的做法，这就要看你随机应变啦(具体实现)； <br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
模板方法模式：模板方法模式准备一个抽象类，将部分逻辑以具体方法以及具体构造子的形式实现，然后声明一些抽象方法来迫使子类实现剩余的逻辑。不同的子类
可以以不同的方式实现这些抽象方法，从而对剩余的逻辑有不同的实现。先制定一个顶级逻辑框架，而将逻辑的细节留给具体的子类去实现。 <br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
23、VISITOR—情人节到了，要给每个MM送一束鲜花和一张卡片，可是每个MM送的花都要针对她个人的特点，每张卡片也要根据个人的特点来挑，我一
个人哪搞得清楚，还是找花店老板和礼品店老板做一下Visitor，让花店老板根据MM的特点选一束花，让礼品店老板也根据每个人特点选一张卡，这样就轻
松多了； <br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
访问者模式：访问者模式的目的是封装一些施加于某种数据结构元素之上的操作。一旦这些操作需要修改的话，接受这个操作的数据结构可以保持不变。访问者模式
适用于数据结构相对未定的系统，它把数据结构和作用于结构上的操作之间的耦合解脱开，使得操作集合可以相对自由的演化。访问者模式使得增加新的操作变的很
容易，就是增加一个新的访问者类。访问者模式将有关的行为集中到一个访问者对象中，而不是分散到一个个的节点类中。当使用访问者模式时，要将尽可能多的对
象浏览逻辑放在访问者类中，而不是放到它的子类中。访问者模式可以跨过几个类的等级结构访问属于不同的等级结构的成员类。</font></p>
<p align="left">（来源：blog.csdn.net，http://www.jdon.com）</p><img src ="http://www.cnitblog.com/shisanlangd/aggbug/34201.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.cnitblog.com/shisanlangd/" target="_blank">十三郎</a> 2007-09-29 23:52 <a href="http://www.cnitblog.com/shisanlangd/archive/2007/09/29/34201.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item></channel></rss>