??xml version="1.0" encoding="utf-8" standalone="yes"?>亚洲香蕉伊综合在人在线视看,国产视频不卡,国产精品第一区 http://www.shnenglu.com/shenhuafeng/category/3024.html(STL,Templete,Generric Programming COM,COM+,ActiveX)---Windows && Linux &&OpenSource
zh-cn Tue, 20 May 2008 12:53:40 GMT Tue, 20 May 2008 12:53:40 GMT 60 五种开源协议收?/title> http://www.shnenglu.com/shenhuafeng/archive/2007/12/03/37668.htmlCPP&&设计模式屋 CPP&&设计模式屋 Mon, 03 Dec 2007 02:33:00 GMT http://www.shnenglu.com/shenhuafeng/archive/2007/12/03/37668.html http://www.shnenglu.com/shenhuafeng/comments/37668.html http://www.shnenglu.com/shenhuafeng/archive/2007/12/03/37668.html#Feedback 2 http://www.shnenglu.com/shenhuafeng/comments/commentRss/37668.html http://www.shnenglu.com/shenhuafeng/services/trackbacks/37668.html 当Adobe、Microsoft、Sun{一pd巨头开始表现出?开?的青睐时Q?开?的时代即到来!
出处Q?a >http://www.sinoprise.com/read.php?tid-662-page-e-fpage-1.html Q我没有改动原文Q只是进行了一些排版和整理?br>参考文献:http://www.fsf.org/licensing/licenses/
C存在的开源协议很多,而经qOpen Source Initiativel织通过批准的开源协议目前有58U(http://www.opensource.org/licenses/alphabetical Q。我们在常见的开源协议如BSD, GPL, LGPL,MIT{都是OSI批准的协议。如果要开源自q代码Q最好也是选择q些被批准的开源协议?/p>
q里我们来看四种最常用的开源协议及它们的适用范围Q供那些准备开源或者用开源品的开发h?厂家参考?/p>
BSD开源协议( original BSD license?/strong>FreeBSD license ?/strong>Original BSD license Q?/strong>
BSD开源协议是一个给于用者很大自q协议。基本上使用者可?为所Ʋؓ",可以自由的用,修改源代码,也可以将修改后的代码作ؓ开源或者专有Y件再发布?/p>
?为所Ʋؓ"的前提当你发布用了BSD协议的代码,或则以BSD协议代码为基做二ơ开发自q产品Ӟ需要满三个条Ӟ
如果再发布的产品中包含源代码Q则在源代码中必d有原来代码中的BSD协议?
如果再发布的只是二进制类?软gQ则需要在cd/软g的文和版权声明中包含原来代码中的BSD协议?
不可以用开源代码的作?机构名字和原来品的名字做市场推qѝ?
BSD 代码鼓励代码׃nQ但需要尊重代码作者的著作权。BSD׃允许使用者修改和重新发布代码Q也允许使用或在BSD代码上开发商业Y件发布和销售,因此是对商业集成很友好的协议。而很多的公司企业在选用开源品的时候都首选BSD协议Q因为可以完全控制这些第三方的代码,在必要的时候可以修Ҏ者二ơ开发?/p>
Apache Licence 2.0Q?/strong>Apache License, Version 2.0 ?span class=link-external>Apache License, Version 1.1 ?span class=link-external>Apache License, Version 1.0 Q?/strong>
Apache Licence是著名的非盈利开源组lApache采用的协议。该协议和BSDcMQ同样鼓׃码共享和重原作者的著作权,同样允许代码修改Q再发布Q作为开源或商业软gQ。需要满的条g也和BSDcMQ?/p>
需要给代码的用户一份Apache Licence
如果你修改了代码Q需要再被修改的文g中说明?
在g伸的代码中(修改和有源代码衍生的代码中)需要带有原来代码中的协议,商标Q专利声明和其他原来作者规定需要包含的说明?
如果再发布的产品中包含一个Notice文gQ则在Notice文g中需要带有Apache Licence。你可以在Notice中增加自q许可Q但不可以表Cؓ对Apache Licence构成更改?
Apache Licence也是对商业应用友好的许可。用者也可以在需要的时候修改代码来满需要ƈ作ؓ开源或商业产品发布/销售?/p>
GPLQ?/strong>GNU General Public License Q?/strong>
我们很熟悉的Linux是采用了GPL。GPL协议和BSD, Apache Licence{鼓׃码重用的许可很不一栗GPL的出发点是代码的开?免费使用和引?修改/衍生代码的开?免费使用Q但不允怿改后和衍生的代码做ؓ闭源的商业Y件发布和销售。这也就是ؓ什么我们能用免费的各种linuxQ包括商业公司的linux和linux上各U各L׃人,l织Q以及商业Y件公司开发的免费软g了?/p>
GPL协议的主要内Ҏ只要在一个Y件中使用("使用"指类库引用,修改后的代码或者衍生代?GPL 协议的品,则该软g产品必须也采用GPL协议Q既必须也是开源和免费。这是所谓的"传染?。GPL协议的品作Z个单独的产品使用没有M问题Q还可以享受免费的优ѝ?/p>
׃GPL严格要求使用了GPLcd的Y件品必M用GPL协议Q对于用GPL协议的开源代码,商业软g或者对代码有保密要求的部门׃适合集成/采用作ؓcd和二ơ开发的基础?/p>
其它l节如再发布的时候需要伴随GPL协议{和BSD/Apache{类伹{?/p>
LGPLQ?/strong>GNU Lesser General Public License Q?/strong>
LGPL是GPL的一个ؓ主要为类库用设计的开源协议。和GPL要求M使用/修改/衍生之GPLcd的的软g必须采用GPL协议不同。LGPL允许商业软g通过cd引用(link)方式使用LGPLcd而不需要开源商业Y件的代码。这使得采用LGPL协议的开源代码可以被商业软g作ؓcd引用q发布和销售?/p>
但是如果修改LGPL协议的代码或者衍生,则所有修改的代码Q涉及修攚w分的额外代码和衍生的代码都必采用LGPL协议。因此LGPL协议的开源代码很适合作ؓW三方类库被商业软g引用Q但不适合希望以LGPL协议代码为基Q通过修改和衍生的方式做二ơ开发的商业软g采用?/p>
GPL/LGPL都保障原作者的知识产权Q避免有人利用开源代码复制ƈ开发类似的产品
MITQ?a >MIT Q?/strong>
MIT是和BSD一样宽范的许可协议,作者只想保留版?而无M其他了限?也就是说,你必d你的发行版里包含原许可协议的声明,无论你是以二q制发布的还是以源代码发布的.
]]>常用~码详解Q{自VCKBASEQ作者:李静?/title> http://www.shnenglu.com/shenhuafeng/archive/2007/07/24/28689.htmlCPP&&设计模式屋 CPP&&设计模式屋 Tue, 24 Jul 2007 04:43:00 GMT http://www.shnenglu.com/shenhuafeng/archive/2007/07/24/28689.html http://www.shnenglu.com/shenhuafeng/comments/28689.html http://www.shnenglu.com/shenhuafeng/archive/2007/07/24/28689.html#Feedback 7 http://www.shnenglu.com/shenhuafeng/comments/commentRss/28689.html http://www.shnenglu.com/shenhuafeng/services/trackbacks/28689.html 阅读全文 ]]> 模版偏特?-Partial Template Specialization(《Modern C++ DesignMW记二? http://www.shnenglu.com/shenhuafeng/archive/2006/12/30/17041.htmlCPP&&设计模式屋 CPP&&设计模式屋 Sat, 30 Dec 2006 09:30:00 GMT http://www.shnenglu.com/shenhuafeng/archive/2006/12/30/17041.html http://www.shnenglu.com/shenhuafeng/comments/17041.html http://www.shnenglu.com/shenhuafeng/archive/2006/12/30/17041.html#Feedback 3 http://www.shnenglu.com/shenhuafeng/comments/commentRss/17041.html http://www.shnenglu.com/shenhuafeng/services/trackbacks/17041.html 阅读全文 ]]> 已经看的Q正在看的和想看的书c?/title> http://www.shnenglu.com/shenhuafeng/archive/2006/12/30/17039.htmlCPP&&设计模式屋 CPP&&设计模式屋 Sat, 30 Dec 2006 08:14:00 GMT http://www.shnenglu.com/shenhuafeng/archive/2006/12/30/17039.html http://www.shnenglu.com/shenhuafeng/comments/17039.html http://www.shnenglu.com/shenhuafeng/archive/2006/12/30/17039.html#Feedback 2 http://www.shnenglu.com/shenhuafeng/comments/commentRss/17039.html http://www.shnenglu.com/shenhuafeng/services/trackbacks/17039.html 最q已l完成阅ȝ书:《STL源码剖析?-侯捷 《TCP/IP详解》第一?br /> 最q准备阅ȝ书:《Moden C++ Design》英文版-- 电子书(最好有Template基础和看q《设计模式》) 《代码大全?-上次看了5?br /> 《深入探索C++对象模型?br /> 要看的书:《TCP/IP详解》第二卷和第三卷?br /> 《应用密码学?br /> 很希望和大家做交,我把《Moden C++ Design》英文版上传到我的文仉面了Q需要的朋友自取?br />
]]> 代码大全Q一Q?-理想的设计特?/title> http://www.shnenglu.com/shenhuafeng/archive/2006/11/16/15201.htmlCPP&&设计模式屋 CPP&&设计模式屋 Thu, 16 Nov 2006 02:14:00 GMT http://www.shnenglu.com/shenhuafeng/archive/2006/11/16/15201.html http://www.shnenglu.com/shenhuafeng/comments/15201.html http://www.shnenglu.com/shenhuafeng/archive/2006/11/16/15201.html#Feedback 0 http://www.shnenglu.com/shenhuafeng/comments/commentRss/15201.html http://www.shnenglu.com/shenhuafeng/services/trackbacks/15201.html 最q开始读《代码大全》,讲到了Y件设计。书上讲得其实很对,软g设计是从架构师设计的架构上构徏q个pȝQ一套好的设计方案就是在各种怺竞争的目标中做折街?br /> 优秀的设计应该具有以下的特征Q?br />最复杂度 易于l护 松散耦合 可扩展?br />可重用?br />高扇入:是大量cM用某个给定的cR这意味着需要多多用工L?br />低扇出:不要q分使用和依赖于其他的类 可移植?br />_?br />层次?br />标准技?br />
]]> Modern C++ Design 学习W记之Policy Based Class Design http://www.shnenglu.com/shenhuafeng/archive/2006/09/13/12426.htmlCPP&&设计模式屋 CPP&&设计模式屋 Wed, 13 Sep 2006 15:22:00 GMT http://www.shnenglu.com/shenhuafeng/archive/2006/09/13/12426.html http://www.shnenglu.com/shenhuafeng/comments/12426.html http://www.shnenglu.com/shenhuafeng/archive/2006/09/13/12426.html#Feedback 4 http://www.shnenglu.com/shenhuafeng/comments/commentRss/12426.html http://www.shnenglu.com/shenhuafeng/services/trackbacks/12426.html 版权所?未经作者允?不得用于商业用?转蝲请附带这W一,二行http://www.shnenglu.com/shenhuafeng/
Modern C++ Design的第一章就是Policy Based Class Design,可见该技术是整个Loki库的设计基础.q种方式的优Ҏ能够增加E序库的Ҏ和提高复用? 单来说就?一个Policy Based Class由很多基本的Policy来组成的,每个Policy Class代表了该复杂c?相对复杂)cȝ某些行ؓ或者特?有点cM于类的承,当然和类的承是不同的?br />那么Policy Based Class有什么用呢?我们先看下面q个问题?br />假如需要设计一个基库,可能是基于某个特定领域的Q那么库的设计者就需要考虑q样的问题,他需要将未来的可能的需求加以分c,抽象出层ơ,然后q用OO思想Q希望能够构造出一个开发的l构Q当然其中的component的设计当然是是灉|好?br />用传l的OO设计思想Q可能可以设计出一套非常完善的cd Q可能包|万象。当然的对于应用开发h员需要花很多旉d习这个“包|万象”的基础cd。而且往往q样的基库不是通用性不强就是限制条件太多(例如MFCQ可以说是q样一U类型的库?/p>
下面要展CZ下运用多重承以及Templetes来实现的policy class,举一个简单的例子Q?br />假如我们需要发明一个灯Q它有不同的U类Q有使用不同能源的工作方式以及有不同的操作方式,如果q用
policy based class来设计的话,可能是这Ll构Q?br />
1
templete
<
2
class
T,
3
templete
<
class
>
class
Work,
4
templete
<
class
>
class
OpMethod
5
>
6
class
Light
7
:
public
Work
<
T
>
,
8
OpMethod
<
Light
>
9
10
{
11
T
*
xxOp()
12
{
13
if
(Work(T).Status
==
ACMODE)
14
OpMethod(
*
this
);
15
}
16
}
当你实例化一个Policy Based Class的时候,你还可以l出默认的实玎ͼ像成员函数声明和定义时候给出的默认参数一栗?/p>
回头来看一下多重承和Templetes的特性: 多重l承Q欠~ZU一成不变的可以套用的代码,在某U受控的情况下将l承的Classl合hQ多重承只是将他们攑֜一P然后提供一U访问方式)。TempletesQ有q样的特性?br />多重l承׃l承自多个Base ClassQ所以型别信息缺乏,而Templetes正式Z型别的?br />多重l承Ҏ扩张Q而Templetes的特化不Ҏ扩张?/p>
正是两项技术的互补Q才使这L技术实现成为可能?br />Light对象l承多个policy class,使得Ҏ得以在~译期间定|从而实现Light Class功能的扩张?br />而Templetes技术得大部分Work以及OpMethod能够׃n大部分基代码Q而对特定的版本实现定倹{?/p>
q样的好处就是,应用E序开发h员得以在应用设计时期Q用这些ClassQ选择适合自己的Policyl装自己的代码,从而得程序大得以精减,q行速率得以提高Q而不必去包含整个又大又全的基cd?/p>
以上只是一些学习的心得和体会,如果有不对的地方Q希望大家多多指教?/p>
]]> Loki库的学习心得 http://www.shnenglu.com/shenhuafeng/archive/2006/09/13/12402.htmlCPP&&设计模式屋 CPP&&设计模式屋 Wed, 13 Sep 2006 03:32:00 GMT http://www.shnenglu.com/shenhuafeng/archive/2006/09/13/12402.html http://www.shnenglu.com/shenhuafeng/comments/12402.html http://www.shnenglu.com/shenhuafeng/archive/2006/09/13/12402.html#Feedback 0 http://www.shnenglu.com/shenhuafeng/comments/commentRss/12402.html http://www.shnenglu.com/shenhuafeng/services/trackbacks/12402.html ]]> 青青草原综合久久大伊人导航_色综合久久天天综合_日日噜噜夜夜狠狠久久丁香五月_热久久这里只有精品
һ߿ |
Ʒva߿˶ |
99ѾƷ߹ۿ |
ŷŮxx |
һ |
ŷպ |
ҹƷ |
ŷ˾ƷƵ |
ŷƷר |
ľƷһ
|
һ߲ |
պһƬַ |
ŮƷѵӰ |
ѹۿ³³³³³Ƶ |
ŷ~վ |
ͼƬɫ |
ŷһ߹ۿ |
Ƶ߹ۿ |
avƬ |
Ӱȷþ |
һƷ |
ɫav |
Ƶ12 |
߿պŷ |
߳ |
պҹӰ߹ۿ |
ŷѲ |
99ȾƷ߹ۿ |
þþƷ |
2024 |
777ŷ |
ҹƷþþ |
㶮Ƶһ |
ŷһɫ |
ŷ̼ԴƵ |
ŷһƷ |
ŷպƷһƵ |
ŷaaaaaaaaţţӰԺ |
ƷպƷŷ
|
ŷƵȫ |
ŷƷһ |
þþþþþ |
ƷŮҹav |
¶ɫۺϾþ |
㽶һ߹ۿ |
۵Ӱ |
þ͵Ƶ |
þþùƵ91 |
Ʒһ |
ƷƵ߹ۿվ |
Ʒva߿ |
ŷ칫18xxxxhd |
ŷ˾þþþþҹþþþ |
ŷһ |
ŷ |
һɫ88þüձȾƷ |
鶹þþƷ |
|
ձĻ |
þŮͬοһ |
ѹۿav |
ŷһ |
Ůջվһ |
ŷһ |
ۺ91Ʒ鶹 |
þۺɫ |
һƷ |
Ʒŷպ |
ŷƷѹۿ |
Ʒ |
ҹƵ |
ƷëƬŮ |
ŷvideos糱 |
ġϵоƷv1С˵ |
ÿҹƵ |
þٸ߳þþƷ99 |
ѳwww |
99ѾƷ߹ۿ |
ŷպպ |
ŷѵӰ |
þۺϺݺ |
Ůһ |
鶹ƵƷ |
þþƷպŷ |
߿ |
լ߹ۿ |
ƷŮþþþa |
ҹƷþþþþþ99ӣ |
鶹avһþ |
ƷղƷ벻 |
ŷƵۿһ |
þøƷ |
9ˬ˾Ʒ |
ҹƵһ |
߹ۿƵ |
ŷպߵһҳ |
xxxx |
һ |
ҹƷþþþþþðƤ |
߹ۿպwwwƵ
|
ŷ |
Ƶ |
þ9ȾƷƵ |
Ʒ |
ƵƷ |
ŷ߹ۿ |
ŷ߹ۿ |
һƷ |
ŷ߳xxxxˮ |
ŷպ |
ƷþƵ |
պŷۺһ |
ŷ |
鶹Ʒվ |
ŷһѹۿƵ |
ձŮ߹ۿ |
þ鶹 |
vaۺ辫Ʒ |
ŷպ |
˾ƷƵվ |
ŷѹۿƵ |
һðƵ |
ۺ |
þۺϾþۺϾɫ |
þþƷ1 |
ŷһ |
ҹƷþþþþþapp |
ŷۺϹһ |
һ |
ԲƷƵ߿ |
ƷƬ㶮 |
Ʒwww994 |
Ʒ˲ |
ŷһҳ |
ŷպ91 |
ŷձƬ |
ŷպ91 |
ŷƷһ |
ŷ߹ۿ |
ŷպ |
ŷպһ
|
ŷһɫͷ |
Ʒv |
ƷŮwwwˬˬˬƵ |
Ʒվ |
Ʒ߳ |
Ʒþþþþþҹ
|
þþžžþþž |
þþۺϾƷ |
ŷѴƬ |
ŷպһҳ |
Ʒ |
Ʒһ |
ɫӰۺϰ |
Ʒۺ |
ŷһþ |
xxxx |
ŷ߹ۿһ |
þɫ߲ |
ŷƷһ |
һƷ߹ۿ |
Ļ |
þþҹɫƷ |
ŷȺ |
ŷϵеӰѹۿ |
Ƶþ |
ѹۿ |
ŷսþþþþþþ |
þþþþþ91 |
ëƬһ |
ŷӰƬһҳ |
ŷƵ߹ۿ |
ƷѹۿƵ |
ӰԺþ |
ԸŮ99 |
þþþ˿ |
¹߹ۿ |
ŷһֱ |
ŷƵ |
һֱƷӰ |
ɫӰԺ |
þøӰ |
|
þֻƷƵ |
ŷҹƷþþþþи |
һ |
߹ۿ |
ŷƷר |
ŷһѹۿƵ |
ŷ鰴Ħ |
һav |
þþþþþŷƷ |
һav˾þۺ |
㶮ĹƷ |
ھþþƷƵ |
ŷvideohd |
ƷþƵ |
Ʒ |
רŷƷͬ |
һѲ
|