|
|
shè jì mó shì shì yī tào bèi fǎn fù shǐ yòng、 duō shù rén zhī xiǎo de、 jīng guòfèn lèi biān mùdì、 dài mǎ shè jì jīng yàn de zǒng jié。 shǐ yòng shè jì mó shì shì wéi liǎo kě zhòng yòng dài mǎ、 ràng dài mǎ gèng róng yì bèi tā rén lǐ jiě、 bǎo zhèng dài mǎ kě kào xìng。
háo wú yí wèn, shè jì mó shì yú jǐ yú tā rén yú xì tǒng dōushì duō yíng de, shè jì mó shì shǐ dài mǎ biān zhì zhēn zhèng gōng chéng huà, shè jì mó shì shì ruǎn jiàn gōng chéng de jī shí, rú tóng dà shà de yī kuài kuài zhuān shí yī yàng。
gof( gangoffour, zhǐ《 shè jì mó shì - kě fù yòng miàn xiàng duì xiàng ruǎn jiàn de jī chǔ》 de sì wèi zuò zhě: erichgamma,richardhelm,ralphjohnsonandjohnvlissides) de “ shè jì mó shì ” shì dì yī cì jiāng shè jì mó shì tí shēng dào lǐ lùn gāo dù, bìng jiāng zhī guī fàn huà, běn shū tí chū liǎo 23 zhǒng jī běn shè jì mó shì , zì cǐ, zài kě fù yòng miàn xiàng duì xiàng ruǎn jiàn de fā zhǎn guò chéng zhōng, xīn de dà liàng de shè jì mó shì bù duàn chū xiàn。
shè jì mó shì hé kuàng jià
xiàn zài, kě fù yòng miàn xiàng duì xiàng ruǎn jiàn xì tǒng xiàn zài yī bān huàfēn wéi sān dà lèi: yìng yòng chéng xù gōng jù xiāng hé kuàng jià (framework), wǒ men píng shí kāi fā de jù tǐ ruǎn jiàn dōushì yìng yòng chéng xù; java de api shǔ yú gōng jù xiāng ; ér kuàng jià shì gòu chéng yī lèi tè dìng ruǎn jiàn kě fù yòng shè jì de yī zǔ xiāng hù xié zuò de lèi。 ejb( enterprisejavabeans) shì java yìng yòng yú qǐ yè jì suàn de kuàng jià .
kuàng jià tōng cháng dìng yì liǎo yìng yòng tǐ xì de zhěng tǐ jié gòu lèi hé duì xiàng de guān xì děng děng shè jì cān shù, yǐ biàn yú jù tǐ yìng yòng shí xiàn zhě néng jí zhōng jīng lì yú yìng yòng běn shēn de tè dìng xì jié。 kuàng jià zhù yào jì lù ruǎn jiàn yìng yòng zhōng gòng tóng de shè jì jué cè, kuàng jià qiáng diào shè jì fù yòng, yīn cǐ kuàng jià shè jì zhōng bì rán yào shǐ yòng shè jì mó shì .
lìng wài, shè jì mó shì yòu zhù yú duì kuàng jià jié gòu de lǐ jiě, chéng shú de kuàng jià tōng cháng shǐ yòng liǎo duō zhǒng shè jì mó shì , rú guǒ nǐ shú xī zhè xiē shè jì mó shì , háo wú yí wèn, nǐ jiāng xùn sù zhǎng wò kuàng jià de jié gòu, wǒ men yī bān kāi fā zhě rú guǒ tū rán jiē chù ejbj2ee děng kuàng jià, huì jué dé tè bié nán xué, nán zhǎng wò, nà me zhuǎn 'ér xiān zhǎng wò shè jì mó shì , wú yí shì gěi liǎo nǐ pōu xī ejb huò j2ee xì tǒng de yī bǎ lì qì
yī gè mó shì de sì gè jī běn yào sù
shè jì mó shì shǐ rén men kě yǐ gèng jiā jiǎn dān fāng biàn dì fù yòng chéng gōng de shè jì hé tǐ xì jié gòu。 jiāng yǐ zhèng shí de jì shù biǎo shù chéng shè jì mó shì yě huì shǐ xīn xì tǒng kāi fā zhě gèng jiā róng yì lǐ jiě qí shè jì sī lù。
1. mó shì míng chēng( patternname)
yī gè zhù jì míng, tā yòng yī liǎng gè cí lái miáo shù mó shì de wèn tí、 jiě jué fāng 'àn hé xiào guǒ。 mìng míng yī gè xīn de mó shì zēng jiā liǎo wǒ men de shè jì cí huì。 shè jì mó shì yǔn xǔ wǒ men zài jiào gāo de chōu xiàng céng cì shàng jìn xíng shè jì。 jī yú yī gè mó shì cí huì biǎo, wǒ men zì jǐ yǐ jí tóng shì zhī jiān jiù kě yǐ tǎo lùn mó shì bìng zài biān xiě wén dàng shí shǐ yòng tā men。 mó shì míng kě yǐ bāng zhù wǒ men sī kǎo, biàn yú wǒ men yǔ qí tā rén jiāo liú shè jì sī xiǎng jí shè jì jiēguǒ。 zhǎo dào qiàdàng de mó shì míng yě shì wǒ men shè jì mó shì biān mù gōng zuò de nán diǎn zhī yī。
2. wèn tí (problem)
miáo shù liǎo yīnggāi zài hé shí shǐ yòng mó shì。 tā jiě shì liǎo shè jì wèn tí hé wèn tí cún zài de qián yīn hòu guǒ, tā kě néng miáo shù liǎo tè dìng de shè jì wèn tí, rú zěn yàng yòng duì xiàng biǎo shì suàn fǎ děng。 yě kě néng miáo shù liǎo dǎo zhì bù líng huó shè jì de lèi huò duì xiàng jié gòu。 yòu shí hòu, wèn tí bù fēn huì bāo kuò shǐ yòng mó shì bì xū mǎn zú de yī xì liè xiān jué tiáo jiàn。
3. jiě jué fāng 'àn (solution)
miáo shù liǎo shè jì de zǔ chéng chéngfèn, tā men zhī jiān de xiāng hù guān xì jí gè zì de zhí zé hé xié zuò fāng shì。 yīn wéi mó shì jiù xiàng yī gè múbǎn, kě yìng yòng yú duō zhǒng bù tóng chǎng hé, suǒ yǐ jiě jué fāng 'àn bìng bù miáo shù yī gè tè dìng 'ér jù tǐ de shè jì huò shí xiàn, ér shì tí gōng shè jì wèn tí de chōu xiàng miáo shù hé zěn yàng yòng yī gè jù yòu yī bān yì yì de yuán sù zǔ hé( lèi huò duì xiàng zǔ hé) lái jiě jué zhè gè wèn tí。
4. xiào guǒ (consequences)
miáo shù liǎo mó shì yìng yòng de xiào guǒ jí shǐ yòng mó shì yìng quán héng de wèn tí。 jìn guǎn wǒ men miáo shù shè jì jué cè shí, bìng bù zǒng tí dào mó shì xiào guǒ, dàn tā men duì yú píng jià shè jì xuǎn zé hé lǐ jiě shǐ yòng mó shì de dài jià jí hǎo chù jù yòu zhòng yào yì yì。 ruǎn jiàn xiào guǒ dà duō guān zhù duì shí jiān hé kōng jiān de héng liàng, tā men yě biǎo shù liǎo yǔ yán hé shí xiàn wèn tí。 yīn wéi fù yòng shì miàn xiàng duì xiàng shè jì de yào sù zhī yī, suǒ yǐ mó shì xiào guǒ bāo kuò tā duì xì tǒng de líng huó xìng、 kuò chōng xìng huò kě yí zhí xìng de yǐng xiǎng, xiǎn shì dì liè chū zhè xiē xiào guǒ duì lǐ jiě hé píng jià zhè xiē mó shì hěn yòu bāng zhù。
sì zhǒng shè jì mó shì de zuò yòng:
wài guān( facade): wèile xì tǒng zhōng de yī zǔ gōng néng diào yòng tí gōng yī gè yī zhì de jiē kǒu, zhè gè jiē kǒu shǐ dé zhè yī zǐ xì tǒng gèng jiā róng yì shǐ yòng;
zhuāng shì( decorate): dāng bù néng cǎi yòng shēng chéng zǐ lèi de fāng fǎ jìn xíng kuò chōng shí, dòng tài dì gěi yī gè duì xiàng tiān jiā yī xiē 'é wài de gōng néng;
dān jiàn( singleton): bǎo zhèng yī gè lèi jǐn yòu yī gè shí lì, bìng tí gōng yī gè fǎng wèn tā de quán jú fǎng wèn diǎn;
múbǎn fāng fǎ( templatemethod): zài fāng fǎ zhōng dìng yì suàn fǎ de kuàng jià, ér jiāng suàn fǎ zhōng de yī xiē cāo zuò bù zhòu yán chí dào zǐ lèi zhōng shí xiàn。
mó shì( pattern) jiù shì zuò shì de yī zhǒng fāng fǎ, yě jí shí xiàn mǒu gè mù biāo de tú jìng, huò zhě jì shù。 zhè zhǒng bǔ huò yòu xiào jì shù de sī xiǎng kě yǐ yìng yòng dào xǔ duō lǐng yù dāng zhōng, bǐ rú pēng rèn、 shēng chǎn yàn huǒ zhì pǐn、 kāi fā ruǎn jiàn yǐ jí qí tā yī xiē hángyè。 duì yú rèn hé yī gè zhèng mài xiàng chéng shú de hángyè, rén men zǒng huì kāi shǐ xún zhǎo yī xiē tōng yòng hé yòu xiào de fāng fǎ, lái dá dào mù biāo bìng jiě jué bù tóng chǎng hé zhōng de wèn tí。 yóu mǒu gè hángyè de cóng yè rén yuán zǔ chéng de shè qū tōng cháng huì fā míng yī xiē zhuān yè shù yǔ, yǐ biàn yú tóng xíng zhī jiànjìn xíng jiāo liú。 zhè qí zhōng de mǒu xiē zhuān yè shù yǔ jiāng chēng wéi mó shì, jí shí xiàn tè dìng mù biāo de gōng rèn jì shù。 suí zhe mǒu gè hángyè jí qí zhuān yè shù yǔ de fā zhǎn, yī xiē zuò zhě biàn kāi shǐ qǐ dào zhòng yào de zuò yòng。 tā men jiāng mǒu gè hángyè de mó shì jì lù guī dàng, cānyù biāo zhǔn huà zhuān yè shù yǔ, bìng qiě gōng kāi chuán bō zhè xiē yòu xiào de jì shù。
christopheralexander shì zuì zǎo jiāng mǒu gè hángyè de zuì jiā shí jiàn jì lù wéi mó shì de zuò zhě zhī yī。 tā yán jiū de lǐng yù shì jiàn zhù( ér bù shì ruǎn jiàn) de jià gòu。 qí zhù zuò apatternlanguage:towns,buildings,construction[alexander、 ishikouwa hé silverstein, 1977] jiè shào liǎo chéng gōng shè jì fáng wū hé chéng zhèn de mó shì。 gāi zhù zuò yǐng xiǎng shēn yuǎn, shèn zhì yǐng xiǎng dào ruǎn jiàn kāi fā hángyè。 gāi shū zhī suǒ yǐ néng gòu yǐng xiǎng qí tā hángyè, bù fēn yuán yīn shì yīn wéi tā gěi chū liǎo yī zhǒng dú tè de guān chá mù biāo de fāng shì。
yòu rén kě néng huì rèn wéi, yìng yòng jiàn zhù mó shì de mù biāo jiù shì“ shè jì jiàn zhù wù”。 dàn shì alexander zài shū zhōng míng què zhǐ chū jiàn zhù mó shì de mù de shì fú wù yú jiàn zhù wù hé chéng zhèn de zhù rén, bìng ràng tā men gǎn dào mǎn yì。 gāi shū zhǐ chū mó shì shì huò qǔ hé jiāo liú hángyè zhī shí de jué jiā tú jìng。 lìng wài, shū zhōng hái tí dào, hé lǐ dì rèn shí bìng jì lù mǒu xiàng gōng zuò de mù biāo fēi cháng guān jiàn, xū yào yǐ zhé xué guān cóng zhěng tǐ kǎo lǜ, bìng kě néng miàn lín nán yǐ zhuō mō de tiǎo zhàn。
mó shì fāng fǎ yǐn qǐ liǎo ruǎn jiàn shè qū de gòng míng, xǔ duō jì lù ruǎn jiàn kāi fā mó shì de tú shū yǐ jīng xiāng jì chū bǎn。 zhè xiē shū zhōng jì lù liǎo ruǎn jiàn guò chéng、 ruǎn jiàn fēn xī、 gāo céng ruǎn jiàn jià gòu yǐ jí lèi céng cì shè jì de zuì jiā shí jiàn。 měi nián dōuyòu zhè fāng miàn de xīn shū miàn shì。 rú guǒ xū yào xuǎn zé yī běn yòu guān mó shì de tú shū, nà me nǐ yīnggāi xiān huā xiē shí jiān qù liú lǎn yī xià duì yǐ chū bǎn de zhè fāng miàn tú shū de shū píng, rán hòu zài xuǎn zé yī běn néng gòu zuì dà chéng dù bāng zhù zì jǐ de tú shū。 |
|
shè jì mó shì ( Designpattern) shì yī tào bèi fǎn fù shǐ yòng、 duō shù rén zhī xiǎo de、 jīng guòfèn lèi biān mùdì、 dài mǎ shè jì jīng yàn de zǒng jié。 shǐ yòng shè jì mó shì shì wéi liǎo kě zhòng yòng dài mǎ、 ràng dài mǎ gèng róng yì bèi tā rén lǐ jiě、 bǎo zhèng dài mǎ kě kào xìng。
háo wú yí wèn, shè jì mó shì yú jǐ yú tā rén yú xì tǒng dōushì duō yíng de, shè jì mó shì shǐ dài mǎ biān zhì zhēn zhèng gōng chéng huà, shè jì mó shì shì ruǎn jiàn gōng chéng de jī shí, rú tóng dà shà de yī kuài kuài zhuān shí yī yàng。
GoF(“ sì rén bāng”, zhǐ Gamma,Helm,Johnson&Vlissides,Addison-Wesley sì rén) de《 shè jì mó shì 》( 1995 nián chū bǎn) shì dì yī cì jiāng shè jì mó shì tí shēng dào lǐ lùn gāo dù, bìng jiāng zhī guī fàn huà, běn shū tí chū liǎo 23 zhǒng jī běn shè jì mó shì , zì cǐ, zài kě fù yòng miàn xiàng duì xiàng ruǎn jiàn de fā zhǎn guò chéng zhōng, xīn de dà liàng de shè jì mó shì bù duàn chū xiàn。 |
shè jì mó shì hé kuàng jià |
xiàn zài, kě fù yòng miàn xiàng duì xiàng ruǎn jiàn xì tǒng xiàn zài yī bān huàfēn wéi sān dà lèi: yìng yòng chéng xù gōng jù xiāng hé kuàng jià (Framework), wǒ men píng shí kāi fā de jù tǐ ruǎn jiàn dōushì yìng yòng chéng xù; Java de API shǔ yú gōng jù xiāng ; ér kuàng jià shì gòu chéng yī lèi tè dìng ruǎn jiàn kě fù yòng shè jì de yī zǔ xiāng hù xié zuò de lèi。 EJB( EnterpriseJavaBeans) shì Java yìng yòng yú qǐ yè jì suàn de kuàng jià .
kuàng jià tōng cháng dìng yì liǎo yìng yòng tǐ xì de zhěng tǐ jié gòu lèi hé duì xiàng de guān xì děng děng shè jì cān shù, yǐ biàn yú jù tǐ yìng yòng shí xiàn zhě néng jí zhōng jīng lì yú yìng yòng běn shēn de tè dìng xì jié。 kuàng jià zhù yào jì lù ruǎn jiàn yìng yòng zhōng gòng tóng de shè jì jué cè, kuàng jià qiáng diào shè jì fù yòng, yīn cǐ kuàng jià shè jì zhōng bì rán yào shǐ yòng shè jì mó shì .
lìng wài, shè jì mó shì yòu zhù yú duì kuàng jià jié gòu de lǐ jiě, chéng shú de kuàng jià tōng cháng shǐ yòng liǎo duō zhǒng shè jì mó shì , rú guǒ nǐ shú xī zhè xiē shè jì mó shì , háo wú yí wèn, nǐ jiāng xùn sù zhǎng wò kuàng jià de jié gòu, wǒ men yī bān kāi fā zhě rú guǒ tū rán jiē chù EJBJ2EE děng kuàng jià, huì jué dé tè bié nán xué, nán zhǎng wò, nà me zhuǎn 'ér xiān zhǎng wò shè jì mó shì , wú yí shì gěi liǎo nǐ pōu xī EJB huò J2EE xì tǒng de yī bǎ lì qì。 |
|
jìn nián lái, dà jiādōu kāi shǐ zhù yì shè jì mó shì 。 nà me, dào dǐ wǒ men wèishénme yào yòng shè jì mó shì ní? zhè me duō shè jì mó shì wèishénme yào zhè me shè jì ní? shuō shí huà, yǐ qián wǒ hái zhēn méi gǎo qīng chǔ。 jiù shì kàn dà jiā yī kǒu yī gè "Designpattern", xīn jiù yòu diǎn fā xū。 yú shì jiù mǎi liǎo běn " sì rén bāng " de shè jì mó shì , jiēguǒ kàn dé sì dǒng fēi dǒng : kàn dé shí hòu hǎo xiàng shì dǒng liǎo, guò yī huì jiù wàng liǎo。 kě néng shì běn rén bǐ jiào " yú dùn " bā :)) zuì jìn, yòu liǎo diǎn gǎn wù。 " dú lè bù rú zhòng lè ", yǔ dà jiā fēn xiǎng yī xià, hái wàng zhǐ jiào !
wèishénme yào tí chàng "DesignPattern" ní? gēn běn yuán yīn shì wèile dài mǎ fù yòng, zēng jiā kě wéi hù xìng。 nà me zěn me cái néng shí xiàn dài mǎ fù yòng ní? OO jiè yòu qián bèi de jǐ gè yuán zé: " kāi - bì " yuán zé (OpenClosedPrincipal)、 lǐ shì dài huàn yuán zé、 hé chéng fù yòng yuán zé。 shè jì mó shì jiù shì shí xiàn liǎo zhè xiē yuán zé, cóng 'ér dá dào liǎo dài mǎ fù yòng、 zēng jiā kě wéi hù xìng de mùdì。
1、 " kāi- bì " yuán zé
cǐ yuán zé shì yóu "BertrandMeyer" tí chū de。 yuán wén shì: "Softwareentitiesshouldbeopenforextension,butclosedformodification"。 jiù shì shuō mó kuài yìng duì kuò zhǎn kāi fàng, ér duì xiū gǎi guān bì。 mó kuài yìng jìn liàng zài bù xiū gǎi yuán ( shì " yuán ", zhǐ yuán lái de dài mǎ ) dài mǎ de qíng kuàng xià jìn xíng kuò zhǎn。 nà me zěn me kuò zhǎn ní? wǒ men kàn gōng chǎng mó shì "factorypattern": jiǎ shè zhōng guān cūn yòu yī gè mài dào bǎn pán hé máo piàn de xiǎo zǐ, wǒ men gěi tā shè jì yī " guāng pán xiāo shòu guǎn lǐ ruǎn jiàn "。 wǒ men yīnggāi xiān shè jì yī " guāng pán " jiē kǒu。 rú tú:
[pre]______________
|<>|
| guāng pán |
|_____________|
|+ mài ()|
||
|_____________|[/pre]
ér dào bǎn pán hé máo piàn shì qí zǐ lèi。 xiǎo zǐ tōng guò "DiscFactory" lái guǎn lǐ zhè xiē guāng pán。 dài mǎ wéi:
publicclassDiscFactory{
publicstatic guāng pán getDisc(java/lang/String.java.html"Stringname){
return( guāng pán )java/lang/Class.java.html"Class.forName(name).getInstance();
}
}
yòu rén yào mǎi dào bǎn pán, zěn me shí xiàn ní?
publicclass xiǎo zǐ {
publicstaticvoidmain(java/lang/String.java.html"String[]args){
guāng pán d=DiscFactory.getDisc(" dào bǎn pán ");
guāng pán . mài ();
}
}
rú guǒ yòu yī tiān, zhè xiǎo zǐ liáng xīn fā xiàn liǎo, kāi shǐ mài zhèng bǎn ruǎn jiàn。 méi guān xì, wǒ men zhǐ yào zài chuàng jiàn yī gè " guāng pán " de zǐ lèi " zhèng bǎn ruǎn jiàn " jiù kě yǐ liǎo。 bù xū yào xiū gǎi yuán jié gòu hé dài mǎ。 zěn me yàng? duì kuò zhǎn kāi fā, duì xiū gǎi guān bì。 " kāi - bì yuán zé "
gōng chǎng mó shì shì duì jù tǐ chǎn pǐn jìn xíng kuò zhǎn, yòu de xiàng mù kě néng xū yào gèng duō de kuò zhǎn xìng, yào duì zhè gè " gōng chǎng " yě jìn xíng kuò zhǎn, nà jiù chéng liǎo " chōu xiàng gōng chǎng mó shì "。
2、 lǐ shì dài huàn yuán zé
lǐ shì dài huàn yuán zé shì yóu "BarbaraLiskov" tí chū de。 rú guǒ diào yòng de shì fù lèi de huà, nà me huàn chéng zǐ lèi yě wán quán kě yǐ yùn xíng。 bǐ rú:
guāng pán d=new dào bǎn pán ();
d. mài ();
xiàn zài yào jiāng " dào bǎn pán " lèi gǎi wéi " máo piàn " lèi, méi wèn tí, wán quán kě yǐ yùn xíng。 Java biān yì chéng xù huì jiǎn chá chéng xù shì fǒu fú hé lǐ shì dài huàn yuán zé。 hái jì dé java jì chéng de yī gè yuán zé má? zǐ lèi override fāng fǎ de fǎng wèn quán xiàn bù néng xiǎo yú fù lèi duì yìng fāng fǎ de fǎng wèn quán xiàn。 bǐ rú " guāng pán " zhōng de fāng fǎ " mài " fǎng wèn quán xiàn shì "public", nà me " dào bǎn pán " hé " máo piàn " zhōng de " mài " fāng fǎ jiù bù néng shì protected huò private, biān yì bù néng tōng guò。 wèishénme yào zhè yàng ní? nǐ xiǎng 'ā: rú guǒ " dào bǎn pán " de " mài " fāng fǎ shì private。 nà me xià miàn zhè duàn dài mǎ jiù bù néng zhí xíng liǎo:
guāng pán d=new dào bǎn pán ();
d. mài ();
kě yǐ shuō: lǐ shì dài huàn yuán zé shì jì chéng fù yòng de yī gè jī chǔ。
3、 hé chéng fù yòng yuán zé
jiù shì shuō yào shǎo yòng jì chéng, duō yòng hé chéng guān xì lái shí xiàn。 wǒ céng jīng zhè yàng xiě guò chéng xù: yòu jǐ gè lèi yào yǔ shù jù kù dǎ jiāo dào, jiù xiě liǎo yī gè shù jù kù cāo zuò de lèi, rán hòu bié de gēn shù jù kù dǎ jiāo dào de lèi dū jì chéng zhè gè。 jiēguǒ hòu lái, wǒ xiū gǎi liǎo shù jù kù cāo zuò lèi de yī gè fāng fǎ, gè gè lèi dū xū yào gǎi dòng。 " qiān yī fā 'ér dòng quán shēn "! miàn xiàng duì xiàng shì yào bǎ bō dòng xiàn zhì zài jìn liàng xiǎo de fàn wéi。
zài Java zhōng, yìng jìn liàng zhēn duì Interface biān chéng, ér fēi shí xiàn lèi。 zhè yàng, gēnghuàn zǐ lèi bù huì yǐng xiǎng diào yòng tā fāng fǎ de dài mǎ。 yào ràng gè gè lèi jìn kě néng shǎo de gēn bié rén lián xì, " bù yào yǔ mò shēng rén shuō huà "。 zhè yàng, chéng mén shī huǒ, cái bù zhì yú yāng jí chí yú。 kuò zhǎn xìng hé wéi hù xìng cái néng tí gāo
lǐ jiě liǎo zhè xiē yuán zé, zài kàn shè jì mó shì , zhǐ shì zài jù tǐ wèn tí shàng zěn me shí xiàn zhè xiē yuán zé 'ér yǐ。 zhāng wú jì xué tài jí quán, wàng jì liǎo suǒ yòu zhāo shì, dǎ dǎo liǎo " xuán mì 'èr lǎo ", suǒ wèi " xīn zhōng wú zhāo "。 shè jì mó shì kě wèi zhāo shù, rú guǒ xiān xué tōng liǎo gè zhǒng mó shì, yòu wàng diào liǎo suǒ yòu mó shì 'ér suí xīn suǒ yù, kě wèi OO zhī zuì gāo jìng jiè。 hē hē, gǎo xiào, gǎo xiào!( JR)
4 yǐ lài dàozhuǎn yuán zé
chōu xiàng bù yìng gāi yǐ lài yǔ xì jié, xì jié yīngdāng yǐ lài yǔ chōu xiàng。
yào zhēn duì jiē kǒu biān chéng, ér bù shì zhēn duì shí xiàn biān chéng。
chuán dì cān shù, huò zhě zài zǔ hé jù hé guān xì zhōng, jìn liàng yǐn yòng céng cì gāo de lèi。
zhù yào shì zài gòu zào duì xiàng shí kě yǐ dòng tài de chuàng jiàn gè zhǒng jù tǐ duì xiàng, dāng rán rú guǒ yī xiē jù tǐ lèi bǐ jiào wěn dìng, jiù bù bì zài nòng yī gè chōu xiàng lèi zuò tā de fù lèi, zhè yàng yòu huà shé tiān zú de gǎn jué
5 jiē kǒu gé lí yuán zé
dìng zhì fú wù de lì zǐ, měi yī gè jiē kǒu yīnggāi shì yī zhǒng juésè, bù duō bù shǎo, bù gān bù gāi gān de shì, gāi gān de shìdōu yào gān
6 chōu xiàng lèi
chōu xiàng lèi bù huì yòu shí lì, yī bān zuò wéi fù lèi wéi zǐ lèi jì chéng, yī bān bāo hán zhè gè xì de gòng tóng shǔ xìng hé fāng fǎ。
zhù yì: hǎo de jì chéng guān xì zhōng, zhǐ yòu yè jié diǎn shì jù tǐ lèi, qí tā jié diǎn yīnggāi dōushì chōu xiàng lèi, yě jiù shì shuō jù tǐ lèi
shì bù bèi jì chéng de。 jiāng jìn kě néng duō de gòng tóng dài mǎ fàng dào chōu xiàng lèi zhōng。
7 dí mǐ tè fǎ zé
zuì shǎo zhī shí yuán zé。 bù yào hé mò shēng rén shuō huà。 |
yī gè mó shì de sì gè jī běn yào sù |
shè jì mó shì shǐ rén men kě yǐ gèng jiā jiǎn dān fāng biàn dì fù yòng chéng gōng de shè jì hé tǐ xì jié gòu。 jiāng yǐ zhèng shí de jì shù biǎo shù chéng shè jì mó shì yě huì shǐ xīn xì tǒng kāi fā zhě gèng jiā róng yì lǐ jiě qí shè jì sī lù。
1. mó shì míng chēng( patternname)
yī gè zhù jì míng, tā yòng yī liǎng gè cí lái miáo shù mó shì de wèn tí、 jiě jué fāng 'àn hé xiào guǒ。 mìng míng yī gè xīn de mó shì zēng jiā liǎo wǒ men de shè jì cí huì。 shè jì mó shì yǔn xǔ wǒ men zài jiào gāo de chōu xiàng céng cì shàng jìn xíng shè jì。 jī yú yī gè mó shì cí huì biǎo, wǒ men zì jǐ yǐ jí tóng shì zhī jiān jiù kě yǐ tǎo lùn mó shì bìng zài biān xiě wén dàng shí shǐ yòng tā men。 mó shì míng kě yǐ bāng zhù wǒ men sī kǎo, biàn yú wǒ men yǔ qí tā rén jiāo liú shè jì sī xiǎng jí shè jì jiēguǒ。 zhǎo dào qiàdàng de mó shì míng yě shì wǒ men shè jì mó shì biān mù gōng zuò de nán diǎn zhī yī。
2. wèn tí (problem)
miáo shù liǎo yīnggāi zài hé shí shǐ yòng mó shì。 tā jiě shì liǎo shè jì wèn tí hé wèn tí cún zài de qián yīn hòu guǒ, tā kě néng miáo shù liǎo tè dìng de shè jì wèn tí, rú zěn yàng yòng duì xiàng biǎo shì suàn fǎ děng。 yě kě néng miáo shù liǎo dǎo zhì bù líng huó shè jì de lèi huò duì xiàng jié gòu。 yòu shí hòu, wèn tí bù fēn huì bāo kuò shǐ yòng mó shì bì xū mǎn zú de yī xì liè xiān jué tiáo jiàn。
3. jiě jué fāng 'àn (solution)
miáo shù liǎo shè jì de zǔ chéng chéngfèn, tā men zhī jiān de xiāng hù guān xì jí gè zì de zhí zé hé xié zuò fāng shì。 yīn wéi mó shì jiù xiàng yī gè múbǎn, kě yìng yòng yú duō zhǒng bù tóng chǎng hé, suǒ yǐ jiě jué fāng 'àn bìng bù miáo shù yī gè tè dìng 'ér jù tǐ de shè jì huò shí xiàn, ér shì tí gōng shè jì wèn tí de chōu xiàng miáo shù hé zěn yàng yòng yī gè jù yòu yī bān yì yì de yuán sù zǔ hé( lèi huò duì xiàng zǔ hé) lái jiě jué zhè gè wèn tí。
4. xiào guǒ (consequences)
miáo shù liǎo mó shì yìng yòng de xiào guǒ jí shǐ yòng mó shì yìng quán héng de wèn tí。 jìn guǎn wǒ men miáo shù shè jì jué cè shí, bìng bù zǒng tí dào mó shì xiào guǒ, dàn tā men duì yú píng jià shè jì xuǎn zé hé lǐ jiě shǐ yòng mó shì de dài jià jí hǎo chù jù yòu zhòng yào yì yì。 ruǎn jiàn xiào guǒ dà duō guān zhù duì shí jiān hé kōng jiān de héng liàng, tā men yě biǎo shù liǎo yǔ yán hé shí xiàn wèn tí。 yīn wéi fù yòng shì miàn xiàng duì xiàng shè jì de yào sù zhī yī, suǒ yǐ mó shì xiào guǒ bāo kuò tā duì xì tǒng de líng huó xìng、 kuò chōng xìng huò kě yí zhí xìng de yǐng xiǎng, xiǎn shì dì liè chū zhè xiē xiào guǒ duì lǐ jiě hé píng jià zhè xiē mó shì hěn yòu bāng zhù。 |
yī xiē jī běn de shè jì mó shì |
Abstract Factory: tí gōng yī gè chuàng jiàn yī xì liè xiāng guān huò xiāng hù yǐ lài duì xiàng de jiē kǒu, ér wú xū zhǐ dìng tā men jù tǐ de lèi。
Adapter: jiāng yī gè lèi de jiē kǒu zhuǎn huàn chéng kè hù xī wàng de lìng wài yī gè jiē kǒu。 Adapter mó shì shǐ dé yuán běn yóu yú jiē kǒu bù jiān róng 'ér bù néng yī qǐ gōng zuò de nà xiē lèi kě yǐ yī qǐ gōng zuò。
Bridge: jiāng chōu xiàng bù fēn yǔ tā de shí xiàn bù fēn fēn lí, shǐ tā mendōu kě yǐ dú lì dì biàn huà。
Builder: jiāng yī gè fù zá duì xiàng de gòu jiàn yǔ tā de biǎo shì fēn lí, shǐ dé tóng yàng de gòu jiàn guò chéng kě yǐ chuàng jiàn bù tóng de biǎo shì。
ChainofResponsibility: wéi jiě chú qǐng qiú de fā sòng zhě hé jiē shōu zhě zhī jiān 'ǒu hé, ér shǐ duō gè duì xiàng dōuyòu jī huì chǔlǐ zhè gè qǐng qiú。 jiāng zhè xiē duì xiàng lián chéng yī tiáo liàn, bìng yán zhe zhè tiáo liàn chuán dì gāi qǐng qiú, zhí dào yòu yī gè duì xiàng chǔlǐ tā。
Command: jiāng yī gè qǐng qiú fēng zhuāng wéi yī gè duì xiàng, cóng 'ér shǐ nǐ kě yòng bù tóng de qǐng qiú duì kè hù jìn xíng cān shù huà; duì qǐng qiú pái duì huò jì lù qǐng qiú rì zhì, yǐ jí zhī chí kě qǔ xiāo de cāo zuò。
Composite: jiāng duì xiàng zǔ hé chéng shù xíng jié gòu yǐ biǎo shì“ bù fēn - zhěng tǐ” de céng cì jié gòu。 tā shǐ dé kè hù duì dān gè duì xiàng hé fù hé duì xiàng de shǐ yòng jù yòu yī zhì xìng。
Decorator: dòng tài dì gěi yī gè duì xiàng tiān jiā yī xiē 'é wài de zhí zé。 jiù kuò zhǎn gōng néng 'ér yán, tā bǐ shēng chéng zǐ lèi fāng shì gèng wéi líng huó。
Facade: wéi zǐ xì tǒng zhōng de yī zǔ jiē kǒu tí gōng yī gè yī zhì de jiè miàn, Facade mó shì dìng yì liǎo yī gè gāo céng jiē kǒu, zhè gè jiē kǒu shǐ dé zhè yī zǐ xì tǒng gèng jiā róng yì shǐ yòng。
FactoryMethod: dìng yì yī gè yòng yú chuàng jiàn duì xiàng de jiē kǒu, ràng zǐ lèi jué dìng jiāng nǎ yī gè lèi shí lì huà。 FactoryMethod shǐ yī gè lèi de shí lì huà yán chí dào qí zǐ lèi。
Flyweight: yùn yòng gòng xiǎng jì shù yòu xiào dì zhī chí dà liàng xì lì dù de duì xiàng。
Interpreter: gěi dìng yī gè yǔ yán , dìng yì tā de wén fǎ de yī zhǒng biǎo shì, bìng dìng yì yī gè jiě shì qì , gāi jiě shì qì shǐ yòng gāi biǎo shì lái jiě shì yǔ yán zhōng de jù zǐ。
Iterator: tí gōng yī zhǒng fāng fǎ shùn xù fǎng wèn yī gè jù hé duì xiàng zhōng gè gè yuán sù , ér yòu bù xū bào lù gāi duì xiàng de nèi bù biǎo shì。
Mediator: yòng yī gè zhōng jiè duì xiàng lái fēng zhuāng yī xì liè de duì xiàng jiāo hù。 zhōng jiè zhě shǐ gè duì xiàng bù xū yào xiǎn shì dì xiāng hù yǐn yòng, cóng 'ér shǐ qí 'ǒu hé sōng sàn, ér qiě kě yǐ dú lì dì gǎi biàn tā men zhī jiān de jiāo hù。
Memento: zài bù pò huài fēng zhuāng xìng de qián tí xià, bǔ huò yī gè duì xiàng de nèi bù zhuàng tài, bìng zài gāi duì xiàng zhī wài bǎo cún zhè gè zhuàng tài。 zhè yàng yǐ hòu jiù kě jiāng gāi duì xiàng huī fù dào bǎo cún de zhuàng tài。
Observer: dìng yì duì xiàng jiān de yī zhǒng yī duì duō de yǐ lài guān xì , yǐ biàn dāng yī gè duì xiàng de zhuàng tài fā shēng gǎi biàn shí , suǒ yòu yǐ lài yú tā de duì xiàng dū dé dào tōng zhī bìng zì dòng shuà xīn。
Prototype: yòng yuán xíng shí lì zhǐ dìng chuàng jiàn duì xiàng de zhǒng lèi, bìng qiě tōng guò kǎo bèi zhè gè yuán xíng lái chuàng jiàn xīn de duì xiàng。
Proxy: wéi qí tā duì xiàng tí gōng yī gè dài lǐ yǐ kòng zhì duì zhè gè duì xiàng de fǎng wèn。
Singleton: bǎo zhèng yī gè lèi jǐn yòu yī gè shí lì, bìng tí gōng yī gè fǎng wèn tā de quán jú fǎng wèn diǎn。
State: yǔn xǔ yī gè duì xiàng zài qí nèi bù zhuàng tài gǎi biàn shí gǎi biàn tā de xíng wéi。 duì xiàng kàn qǐ lái sì hū xiū gǎi liǎo tā suǒ shǔ de lèi。
Strategy: dìng yì yī xì liè de suàn fǎ , bǎ tā men yī gè gè fēng zhuāng qǐ lái , bìng qiě shǐ tā men kě xiāng hù tì huàn。 běn mó shì shǐ dé suàn fǎ de biàn huà kě dú lì yú shǐ yòng tā de kè hù。
TemplateMethod: dìng yì yī gè cāo zuò zhōng de suàn fǎ de gǔ jià, ér jiāng yī xiē bù zhòu yán chí dào zǐ lèi zhōng。 TemplateMethod shǐ dé zǐ lèi kě yǐ bù gǎi biàn yī gè suàn fǎ de jié gòu jí kě zhòng dìng yì gāi suàn fǎ de mǒu xiē tè dìng bù zhòu。
Visitor: biǎo shì yī gè zuò yòng yú mǒu duì xiàng jié gòu zhōng de gè yuán sù de cāo zuò。 tā shǐ nǐ kě yǐ zài bù gǎi biàn gè yuán sù de lèi de qián tí xià dìng yì zuò yòng yú zhè xiē yuán sù de xīn cāo zuò。
chuàng jiàn xíng jié gòu xíng xíng wéi xíng
lèi FactoryMethodAdapter_ClassInterpreter
TemplateMethod
duì xiàng AbstractFactory
Builder
Prototype
SingletonAdapter_Object
Bridge
Composite
Decorator
Facade
Flyweight
ProxyChainofResponsibility
Command
Iterator
Mediator
Memento
Observer
State
Strategy
Visitor
gài lǎn
míng chēng FactoryMethod
jié gòu
yì tú dìng yì yī gè yòng yú chuàng jiàn duì xiàng de jiē kǒu, ràng zǐ lèi jué dìng shí lì huà nǎ yī gè lèi。 FactoryMethod shǐ yī gè lèi de shí lì huà yán chí dào qí zǐ lèi。
shì yòng xìng dāng yī gè lèi bù zhī dào tā suǒ bì xū chuàng jiàn de duì xiàng de lèi de shí hòu。
dāng yī gè lèi xī wàng yóu tā de zǐ lèi lái zhǐ dìng tā suǒ chuàng jiàn de duì xiàng de shí hòu。
dāng lèi jiāng chuàng jiàn duì xiàng de zhí zé wěi tuō gěi duō gè bāng zhù zǐ lèi zhōng de mǒu yī gè, bìng qiě nǐ xī wàng jiāng nǎ yī gè bāng zhù zǐ lèi shì dài lǐ zhě zhè yī xìn xī jú bù huà de shí hòu。
míng chēng AbstractFactory
jié gòu
yì tú tí gōng yī gè chuàng jiàn yī xì liè xiāng guān huò xiāng hù yǐ lài duì xiàng de jiē kǒu, ér wú xū zhǐ dìng tā men jù tǐ de lèi。
shì yòng xìng yī gè xì tǒng yào dú lì yú tā de chǎn pǐn de chuàng jiàn、 zǔ hé hé biǎo shì shí。
yī gè xì tǒng yào yóu duō gè chǎn pǐn xì liè zhōng de yī gè lái pèi zhì shí。
dāng nǐ yào qiáng diào yī xì liè xiāng guān de chǎn pǐn duì xiàng de shè jì yǐ biàn jìn xíng lián hé shǐ yòng shí。
dāng nǐ tí gōng yī gè chǎn pǐn lèi kù, ér zhǐ xiǎng xiǎn shì tā men de jiē kǒu 'ér bù shì shí xiàn shí。
míng chēng Builder
jié gòu
yì tú jiāng yī gè fù zá duì xiàng de gòu jiàn yǔ tā de biǎo shì fēn lí, shǐ dé tóng yàng de gòu jiàn guò chéng kě yǐ chuàng jiàn bù tóng de biǎo shì。
shì yòng xìng dāng chuàng jiàn fù zá duì xiàng de suàn fǎ yīnggāi dú lì yú gāi duì xiàng de zǔ chéng bù fēn yǐ jí tā men de zhuāng pèi fāng shì shí。
dāng gòu zào guò chéng bì xū yǔn xǔ bèi gòu zào de duì xiàng yòu bù tóng de biǎo shì shí。
míng chēng Prototype
jié gòu
yì tú yòng yuán xíng shí lì zhǐ dìng chuàng jiàn duì xiàng de zhǒng lèi, bìng qiě tōng guò kǎo bèi zhè xiē yuán xíng chuàng jiàn xīn de duì xiàng。
shì yòng xìng dāng yào shí lì huà de lèi shì zài yùn xíng shí kè zhǐ dìng shí, lì rú, tōng guò dòng tài zhuāng zài; huò zhě
wèile bì miǎn chuàng jiàn yī gè yǔ chǎn pǐn lèi céng cì píng xíng de gōng chǎng lèi céng cì shí; huò zhě
dāng yī gè lèi de shí lì zhǐ néng yòu jǐ gè bù tóng zhuàng tài zǔ hé zhōng de yī zhǒng shí。 jiàn lì xiāng yìng shù mùdì yuán xíng bìng kè lóng tā men kě néng bǐ měi cì yòng hé shì de zhuàng tài shǒu gōng shí lì huà gāi lèi gèng fāng biàn yī xiē。
míng chēng Singleton
jié gòu
yì tú bǎo zhèng yī gè lèi jǐn yòu yī gè shí lì, bìng tí gōng yī gè fǎng wèn tā de quán jú fǎng wèn diǎn。
shì yòng xìng dāng lèi zhǐ néng yòu yī gè shí lì 'ér qiě kè hù kě yǐ cóng yī gè zhòng suǒ zhōu zhī de fǎng wèn diǎn fǎng wèn tā shí。
dāng zhè gè wéi yī shí lì yīnggāi shì tōng guò zǐ lèi huà kě kuò zhǎn de, bìng qiě kè hù yīnggāi wú xū gēnggǎi dài mǎ jiù néng shǐ yòng yī gè kuò zhǎn de shí lì shí。
míng chēng Adapter
jié gòu
yì tú jiāng yī gè lèi de jiē kǒu zhuǎn huàn chéng kè hù xī wàng de lìng wài yī gè jiē kǒu。 Adapter mó shì shǐ dé yuán běn yóu yú jiē kǒu bù jiān róng 'ér bù néng yī qǐ gōng zuò de nà xiē lèi kě yǐ yī qǐ gōng zuò。
shì yòng xìng nǐ xiǎng shǐ yòng yī gè yǐ jīng cún zài de lèi, ér tā de jiē kǒu bù fú hé nǐ de xū qiú。
nǐ xiǎng chuàng jiàn yī gè kě yǐ fù yòng de lèi, gāi lèi kě yǐ yǔ qí tā bù xiāng guān de lèi huò bù kě yù jiàn de lèi( jí nà xiē jiē kǒu kě néng bù yī dìng jiān róng de lèi) xié tóng gōng zuò。
( jǐn shì yòng yú duì xiàng Adapter) nǐ xiǎng shǐ yòng yī xiē yǐ jīng cún zài de zǐ lèi, dàn shì bù kě néng duì měi yī gèdōu jìn xíng zǐ lèi huà yǐ pǐ pèi tā men de jiē kǒu。 duì xiàng shì pèi qì kě yǐ shì pèi tā de fù lèi jiē kǒu。
míng chēng Bridge
jié gòu
yì tú jiāng chōu xiàng bù fēn yǔ tā de shí xiàn bù fēn fēn lí, shǐ tā mendōu kě yǐ dú lì dì biàn huà。
shì yòng xìng nǐ bù xī wàng zài chōu xiàng hé tā de shí xiàn bù fēn zhī jiān yòu yī gè gù dìng de bǎng dìng guān xì。 lì rú zhè zhǒng qíng kuàng kě néng shì yīn wéi, zài chéng xù yùn xíng shí kè shí xiàn bù fēn yìng kě yǐ bèi xuǎn zé huò zhě qiē huàn。
lèi de chōu xiàng yǐ jí tā de shí xiàn dū yīnggāi kě yǐ tōng guò shēng chéng zǐ lèi de fāng fǎ jiā yǐ kuò chōng。 zhè shí Bridge mó shì shǐ nǐ kě yǐ duì bù tóng de chōu xiàng jiē kǒu hé shí xiàn bù fēn jìn xíng zǔ hé, bìng fēn bié duì tā men jìn xíng kuò chōng。
duì yī gè chōu xiàng de shí xiàn bù fēn de xiū gǎi yìng duì kè hù bù chǎn shēng yǐng xiǎng, jí kè hù de dài mǎ bù bì chóngxīn biān yì。
( C++) nǐ xiǎng duì kè hù wán quán yǐn cáng chōu xiàng de shí xiàn bù fēn。 zài C++ zhōng, lèi de biǎo shì zài lèi jiē kǒu zhōng shì kě jiàn de。
yòu xǔ duō lèi yào shēng chéng。 zhè yàng yī zhǒng lèi céng cì jié gòu shuō míng nǐ bì xū jiāng yī gè duì xiàng fēn jiě chéng liǎng gè bù fēn。 Rumbaugh chēng zhè zhǒng lèi céng cì jié gòu wéi“ qiàn tào de pǔ huà”( nestedgeneralizations)。
nǐ xiǎng zài duō gè duì xiàng jiān gòng xiǎng shí xiàn( kě néng shǐ yòng yǐn yòng jì shù), dàn tóng shí yào qiú kè hù bìng bù zhī dào zhè yī diǎn。 yī gè jiǎn dān de lì zǐ biàn shì Coplien de String lèi [Cop92], zài zhè gè lèi zhōng duō gè duì xiàng kě yǐ gòng xiǎng tóng yī gè zì fú chuàn biǎo shì( StringRep)。
míng chēng Composite
jié gòu
yì tú jiāng duì xiàng zǔ hé chéng shù xíng jié gòu yǐ biǎo shì“ bù fēn - zhěng tǐ” de céng cì jié gòu。 Composite shǐ dé yòng hù duì dān gè duì xiàng hé zǔ hé duì xiàng de shǐ yòng jù yòu yī zhì xìng。
shì yòng xìng nǐ xiǎng biǎo shì duì xiàng de bù fēn - zhěng tǐ céng cì jié gòu。
nǐ xī wàng yòng hù hū lüè zǔ hé duì xiàng yǔ dān gè duì xiàng de bù tóng, yòng hù jiāng tǒng yī dì shǐ yòng zǔ hé jié gòu zhōng de suǒ yòu duì xiàng。
míng chēng Decorator
jié gòu
yì tú dòng tài dì gěi yī gè duì xiàng tiān jiā yī xiē 'é wài de zhí zé。 jiù zēng jiā gōng néng lái shuō, Decorator mó shì xiāng bǐ shēng chéng zǐ lèi gèng wéi líng huó。
shì yòng xìng zài bù yǐng xiǎng qí tā duì xiàng de qíng kuàng xià, yǐ dòng tài、 tòu míng de fāng shì gěi dān gè duì xiàng tiān jiā zhí zé。
chǔlǐ nà xiē kě yǐ chè xiāo de zhí zé。
dāng bù néng cǎi yòng shēng chéng zǐ lèi de fāng fǎ jìn xíng kuò chōng shí。 yī zhǒng qíng kuàng shì, kě néng yòu dà liàng dú lì de kuò zhǎn, wéi zhī chí měi yī zhǒng zǔ hé jiāng chǎn shēng dà liàng de zǐ lèi, shǐ dé zǐ lèi shù mù chéng bào zhà xìng zēngzhǎng。 lìng yī zhǒng qíng kuàng kě néng shì yīn wéi lèi dìng yì bèi yǐn cáng, huò lèi dìng yì bù néng yòng yú shēng chéng zǐ lèi。
míng chēng Facade
jié gòu
yì tú wéi zǐ xì tǒng zhōng de yī zǔ jiē kǒu tí gōng yī gè yī zhì de jiè miàn, Facade mó shì dìng yì liǎo yī gè gāo céng jiē kǒu, zhè gè jiē kǒu shǐ dé zhè yī zǐ xì tǒng gèng jiā róng yì shǐ yòng。
shì yòng xìng dāng nǐ yào wéi yī gè fù zá zǐ xì tǒng tí gōng yī gè jiǎn dān jiē kǒu shí。 zǐ xì tǒng wǎng wǎng yīn wéi bù duàn yǎn huà 'ér biàn dé yuè lái yuè fù zá。 dà duō shù mó shì shǐ yòng shí dū huì chǎn shēng gèng duō gèng xiǎo de lèi。 zhè shǐ dé zǐ xì tǒng gèng jù kě zhòng yòng xìng, yě gèng róng yì duì zǐ xì tǒng jìn xíng dìng zhì, dàn zhè yě gěi nà xiē bù xū yào dìng zhì zǐ xì tǒng de yòng hù dài lái yī xiē shǐ yòng shàng de kùn nán。 Facade kě yǐ tí gōng yī gè jiǎn dān de quē shěng shì tú, zhè yī shì tú duì dà duō shù yòng hù lái shuō yǐ jīng zú gòu, ér nà xiē xū yào gèng duō de kě dìng zhì xìng de yòng hù kě yǐ yuè guò facade céng。
kè hù chéng xù yǔ chōu xiàng lèi de shí xiàn bù fēn zhī jiān cún zài zhe hěn dà de yǐ lài xìng。 yǐn rù facade jiāng zhè gè zǐ xì tǒng yǔ kè hù yǐ jí qí tā de zǐ xì tǒng fēn lí, kě yǐ tí gāo zǐ xì tǒng de dú lì xìng hé kě yí zhí xìng。
dāng nǐ xū yào gòu jiàn yī gè céng cì jié gòu de zǐ xì tǒng shí, shǐ yòng facade mó shì dìng yì zǐ xì tǒng zhōng měi céng de rù kǒu diǎn。 rú guǒ zǐ xì tǒng zhī jiān shì xiāng hù yǐ lài de, nǐ kě yǐ ràng tā men jǐn tōng guò facade jìn xíng tōng xùn, cóng 'ér jiǎn huà liǎo tā men zhī jiān de yǐ lài guān xì。
míng chēng Flyweight
jié gòu
yì tú yùn yòng gòng xiǎng jì shù yòu xiào dì zhī chí dà liàng xì lì dù de duì xiàng。
shì yòng xìng yī gè yìng yòng chéng xù shǐ yòng liǎo dà liàng de duì xiàng。
wán quán yóu yú shǐ yòng dà liàng de duì xiàng, zào chéng hěn dà de cún chǔ kāi xiāo。
duì xiàng de dà duō shù zhuàng tài dōukě biàn wéi wài bù zhuàng tài。
rú guǒ shān chú duì xiàng de wài bù zhuàng tài, nà me kě yǐ yòng xiāng duì jiào shǎo de gòng xiǎng duì xiàng qǔ dài hěn duō zǔ duì xiàng。
yìng yòng chéng xù bù yǐ lài yú duì xiàng biāozhì。 yóu yú Flyweight duì xiàng kě yǐ bèi gòng xiǎng, duì yú gài niàn shàng míng xiǎn yòu bié de duì xiàng, biāozhì cè shì jiāng fǎn huí zhēn zhí。
míng chēng Proxy
jié gòu
yì tú wéi qí tā duì xiàng tí gōng yī zhǒng dài lǐ yǐ kòng zhì duì zhè gè duì xiàng de fǎng wèn。
shì yòng xìng zài xū yào yòng bǐ jiào tōng yòng hé fù zá de duì xiàng zhǐ zhēn dài tì jiǎn dān de zhǐ zhēn de shí hòu, shǐ yòng Proxy mó shì。 xià miàn shì yī xiē kě yǐ shǐ yòng Proxy mó shì cháng jiàn qíng kuàng:
1) yuǎn chéng dài lǐ( RemoteProxy) wéi yī gè duì xiàng zài bù tóng de dì zhǐ kōng jiān tí gōng jú bù dài biǎo。 NEXTSTEP[Add94] shǐ yòng NXProxy lèi shí xiàn liǎo zhè yī mùdì。 Coplien[Cop92] chēng zhè zhǒng dài lǐ wéi“ dà shǐ”( Ambassador)。
2) xū dài lǐ( VirtualProxy) gēn jù xū yào chuàng jiàn kāi xiāo hěn dà de duì xiàng。 zài dòng jī yī jié miáo shù de ImageProxy jiù shì zhè yàng yī zhǒng dài lǐ de lì zǐ。
3) bǎo hù dài lǐ( ProtectionProxy) kòng zhì duì yuán shǐ duì xiàng de fǎng wèn。 bǎo hù dài lǐ yòng yú duì xiàng yīnggāi yòu bù tóng de fǎng wèn quán xiàn de shí hòu。 lì rú, zài Choices cāo zuò xì tǒng [CIRM93] zhōng KemelProxies wéi cāo zuò xì tǒng duì xiàng tí gōng liǎo fǎng wèn bǎo hù。
4) zhì néng zhǐ yǐn( SmartReference) qǔ dài liǎo jiǎn dān de zhǐ zhēn, tā zài fǎng wèn duì xiàng shí zhí xíng yī xiē fù jiā cāo zuò。 tā de diǎn xíng yòng tú bāo kuò:
duì zhǐ xiàng shí jì duì xiàng de yǐn yòng jì shù, zhè yàng dāng gāi duì xiàng méi yòu yǐn yòng shí, kě yǐ zì dòng shì fàng tā ( yě chēng wéi SmartPointers[Ede92])。
dāng dì yī cì yǐn yòng yī gè chí jiǔ duì xiàng shí, jiāng tā zhuāng rù nèi cún。
zài fǎng wèn yī gè shí jì duì xiàng qián, jiǎn chá shì fǒu yǐ jīng suǒ dìng liǎo tā, yǐ què bǎo qí tā duì xiàng bù néng gǎi biàn tā。
míng chēng ChainofResponsibility
jié gòu
yì tú shǐ duō gè duì xiàng dōuyòu jī huì chǔlǐ qǐng qiú, cóng 'ér bì miǎn qǐng qiú de fā sòng zhě hé jiē shōu zhě zhī jiān de 'ǒu hé guān xì。 jiāng zhè xiē duì xiàng lián chéng yī tiáo liàn, bìng yán zhe zhè tiáo liàn chuán dì gāi qǐng qiú, zhí dào yòu yī gè duì xiàng chǔlǐ tā wéi zhǐ。
shì yòng xìng yòu duō gè de duì xiàng kě yǐ chǔlǐ yī gè qǐng qiú, nǎ gè duì xiàng chǔlǐ gāi qǐng qiú yùn xíng shí kè zì dòng què dìng。
nǐ xiǎng zài bù míng què zhǐ dìng jiē shōu zhě de qíng kuàng xià, xiàng duō gè duì xiàng zhōng de yī gè tí jiāo yī gè qǐng qiú。
kě chǔlǐ yī gè qǐng qiú de duì xiàng jí hé yìng bèi dòng tài zhǐ dìng。
míng chēng Command
jié gòu
yì tú jiāng yī gè qǐng qiú fēng zhuāng wéi yī gè duì xiàng, cóng 'ér shǐ nǐ kě yòng bù tóng de qǐng qiú duì kè hù jìn xíng cān shù huà; duì qǐng qiú pái duì huò jì lù qǐng qiú rì zhì, yǐ jí zhī chí kě chè xiāo de cāo zuò。
shì yòng xìng xiàng shàng miàn tǎo lùn de MenuItem duì xiàng nà yàng, chōu xiàng chū dài zhí xíng de dòng zuò yǐ cān shù huà mǒu duì xiàng。 nǐ kě yòng guò chéng yǔ yán zhōng de huí diào( callback) hán shù biǎo dá zhè zhǒng cān shù huà jī zhì。 suǒ wèi huí diào hán shù shì zhǐ hán shù xiān zài mǒu chù zhù cè, ér tā jiāng zài shāo hòu mǒu gè xū yào de shí hòu bèi diào yòng。 Command mó shì shì huí diào jī zhì de yī gè miàn xiàng duì xiàng de tì dài pǐn。
zài bù tóng de shí kè zhǐ dìng、 pái liè hé zhí xíng qǐng qiú。 yī gè Command duì xiàng kě yǐ yòu yī gè yǔ chū shǐ qǐng qiú wú guān de shēng cún qī。 rú guǒ yī gè qǐng qiú de jiē shōu zhě kě yòng yī zhǒng yǔ dì zhǐ kōng jiān wú guān de fāng shì biǎo dá, nà me jiù kě jiāng fù zé gāi qǐng qiú de mìng lìng duì xiàng chuán sòng gěi lìng yī gè bù tóng de jìn chéng bìng zài nà 'ér shí xiàn gāi qǐng qiú。
zhī chí qǔ xiāo cāo zuò。 Command de Excute cāo zuò kě zài shí shī cāo zuò qián jiāng zhuàng tài cún chǔ qǐ lái, zài qǔ xiāo cāo zuò shí zhè gè zhuàng tài yòng lái xiāo chú gāi cāo zuò de yǐng xiǎng。 Command jiē kǒu bì xū tiān jiā yī gè Unexecute cāo zuò, gāi cāo zuò qǔ xiāo shàng yī cì Execute diào yòng de xiào guǒ。 zhí xíng de mìng lìng bèi cún chǔ zài yī gè lì shǐ liè biǎo zhōng。 kě tōng guò xiàng hòu hé xiàng qián biàn lì zhè yī liè biǎo bìng fēn bié diào yòng Unexecute hé Execute lái shí xiàn zhòng shù bù xiàn de“ qǔ xiāo” hé“ zhòng zuò”。
zhī chí xiū gǎi rì zhì, zhè yàng dāng xì tǒng bēng kuì shí, zhè xiē xiū gǎi kě yǐ bèi zhòng zuò yī biàn。 zài Command jiē kǒu zhōng tiān jiā zhuāng zài cāo zuò hé cún chǔ cāo zuò, kě yǐ yòng lái bǎo chí biàn dòng de yī gè yī zhì de xiū gǎi rì zhì。 cóng bēng kuì zhōng huī fù de guò chéng bāo kuò cóng cí pán zhōng chóngxīn dú rù jì lù xià lái de mìng lìng bìng yòng Execute cāo zuò chóngxīn zhí xíng tā men。
yòng gòu jiàn zài yuán yǔ cāo zuò shàng de gāo céng cāo zuò gòu zào yī gè xì tǒng。 zhè yàng yī zhǒng jié gòu zài zhī chí shì wù (transaction) de xìn xī xì tǒng zhōng hěn cháng jiàn。 yī gè shì wù fēng zhuāng liǎo duì shù jù de yī zǔ biàn dòng。 Command mó shì tí gōng liǎo duì shì wù jìn xíng jiàn mó de fāng fǎ。 Command yòu yī gè gōng gòng de jiē kǒu, shǐ dé nǐ kě yǐ yòng tóng yī zhǒng fāng shì diào yòng suǒ yòu de shì wù。 tóng shí shǐ yòng gāi mó shì yě yì yú tiān jiā xīn shì wù yǐ kuò zhǎn xì tǒng。
míng chēng Interpreter
jié gòu
yì tú gěi dìng yī gè yǔ yán, dìng yì tā de wén fǎ de yī zhǒng biǎo shì, bìng dìng yì yī gè jiě shì qì, zhè gè jiě shì qì shǐ yòng gāi biǎo shì lái jiě shì yǔ yán zhōng de jù zǐ。
shì yòng xìng dāng yòu yī gè yǔ yán xū yào jiě shì zhí xíng , bìng qiě nǐ kě jiāng gāi yǔ yán zhōng de jù zǐ biǎo shì wéi yī gè chōu xiàng yǔ fǎ shù shí, kě shǐ yòng jiě shì qì mó shì。 ér dāng cún zài yǐ xià qíng kuàng shí gāi mó shì xiào guǒ zuì hǎo:
gāi wén fǎ jiǎn dān duì yú fù zá de wén fǎ , wén fǎ de lèi céng cì biàn dé páng dà 'ér wú fǎ guǎn lǐ。 cǐ shí yǔ fǎ fēn xī chéng xù shēng chéng qì zhè yàng de gōng jù shì gèng hǎo de xuǎn zé。 tā men wú xū gòu jiàn chōu xiàng yǔ fǎ shù jí kě jiě shì biǎo dá shì , zhè yàng kě yǐ jié shěng kōng jiān 'ér qiě hái kě néng jié shěng shí jiān。
xiàolǜ bù shì yī gè guān jiàn wèn tí zuì gāo xiào de jiě shì qì tōng cháng bù shì tōng guò zhí jiē jiě shì yǔ fǎ fēn xī shù shí xiàn de , ér shì shǒu xiān jiāng tā men zhuǎn huàn chéng lìng yī zhǒng xíng shì。 lì rú, zhèng zé biǎo dá shì tōng cháng bèi zhuǎn huàn chéng zhuàng tài jī。 dàn jí shǐ zài zhè zhǒng qíng kuàng xià , zhuǎn huàn qì réng kě yòng jiě shì qì mó shì shí xiàn , gāi mó shì réng shì yòu yòng de。
míng chēng Iterator
jié gòu
yì tú tí gōng yī zhǒng fāng fǎ shùn xù fǎng wèn yī gè jù hé duì xiàng zhōng gè gè yuán sù , ér yòu bù xū bào lù gāi duì xiàng de nèi bù biǎo shì。
shì yòng xìng fǎng wèn yī gè jù hé duì xiàng de nèi róng 'ér wú xū bào lù tā de nèi bù biǎo shì。
zhī chí duì jù hé duì xiàng de duō zhǒng biàn lì。
wéi biàn lì bù tóng de jù hé jié gòu tí gōng yī gè tǒng yī de jiē kǒu ( jí , zhī chí duō tài dié dài )。
míng chēng Mediator
jié gòu
yì tú yòng yī gè zhōng jiè duì xiàng lái fēng zhuāng yī xì liè de duì xiàng jiāo hù。 zhōng jiè zhě shǐ gè duì xiàng bù xū yào xiǎn shì dì xiāng hù yǐn yòng, cóng 'ér shǐ qí 'ǒu hé sōng sàn, ér qiě kě yǐ dú lì dì gǎi biàn tā men zhī jiān de jiāo hù。
shì yòng xìng yī zǔ duì xiàng yǐ dìng yì liáng hǎo dàn shì fù zá de fāng shì jìn xíng tōng xìn。 chǎn shēng de xiāng hù yǐ lài guān xì jié gòu hùn luàn qiě nán yǐ lǐ jiě。
yī gè duì xiàng yǐn yòng qí tā hěn duō duì xiàng bìng qiě zhí jiē yǔ zhè xiē duì xiàng tōng xìn , dǎo zhì nán yǐ fù yòng gāi duì xiàng。
xiǎng dìng zhì yī gè fēn bù zài duō gè lèi zhōng de xíng wéi, ér yòu bù xiǎng shēng chéng tài duō de zǐ lèi。
míng chēng Memento
jié gòu
yì tú zài bù pò huài fēng zhuāng xìng de qián tí xià, bǔ huò yī gè duì xiàng de nèi bù zhuàng tài, bìng zài gāi duì xiàng zhī wài bǎo cún zhè gè zhuàng tài。 zhè yàng yǐ hòu jiù kě jiāng gāi duì xiàng huī fù dào yuán xiān bǎo cún de zhuàng tài。
shì yòng xìng bì xū bǎo cún yī gè duì xiàng zài mǒu yī gè shí kè de ( bù fēn ) zhuàng tài , zhè yàng yǐ hòu xū yào shí tā cái néng huī fù dào xiān qián de zhuàng tài。
rú guǒ yī gè yòng jiē kǒu lái ràng qí tā duì xiàng zhí jiē dé dào zhè xiē zhuàng tài, jiāng huì bào lù duì xiàng de shí xiàn xì jié bìng pò huài duì xiàng de fēng zhuāng xìng。
míng chēng Observer
jié gòu
yì tú dìng yì duì xiàng jiān de yī zhǒng yī duì duō de yǐ lài guān xì , dāng yī gè duì xiàng de zhuàng tài fā shēng gǎi biàn shí , suǒ yòu yǐ lài yú tā de duì xiàng dū dé dào tōng zhī bìng bèi zì dòng gēngxīn。
shì yòng xìng dāng yī gè chōu xiàng mó xíng yòu liǎng gè fāng miàn , qí zhōng yī gè fāng miàn yǐ lài yú lìng yī fāng miàn。 jiāng zhè 'èr zhě fēng zhuāng zài dú lì de duì xiàng zhōng yǐ shǐ tā men kě yǐ gè zì dú lì dì gǎi biàn hé fù yòng。
dāng duì yī gè duì xiàng de gǎi biàn xū yào tóng shí gǎi biàn qí tā duì xiàng , ér bù zhī dào jù tǐ yòu duō shǎo duì xiàng yòu dài gǎi biàn。
dāng yī gè duì xiàng bì xū tōng zhī qí tā duì xiàng, ér tā yòu bù néng jiǎ dìng qí tā duì xiàng shì shuí。 huàn yán zhī , nǐ bù xī wàng zhè xiē duì xiàng shì jǐn mì 'ǒu hé de。
míng chēng State
jié gòu
yì tú yǔn xǔ yī gè duì xiàng zài qí nèi bù zhuàng tài gǎi biàn shí gǎi biàn tā de xíng wéi。 duì xiàng kàn qǐ lái sì hū xiū gǎi liǎo tā de lèi。
shì yòng xìng yī gè duì xiàng de xíng wéi qǔ jué yú tā de zhuàng tài , bìng qiě tā bì xū zài yùn xíng shí kè gēn jù zhuàng tài gǎi biàn tā de xíng wéi。
yī gè cāo zuò zhōng hán yòu páng dà de duō fēn zhī de tiáo jiàn yǔ jù, qiě zhè xiē fēn zhī yǐ lài yú gāi duì xiàng de zhuàng tài。 zhè gè zhuàng tài tōng cháng yòng yī gè huò duō gè méi jǔ cháng liàng biǎo shì。 tōng cháng , yòu duō gè cāo zuò bāo hán zhè yī xiāng tóng de tiáo jiàn jié gòu。 State mó shì jiāng měi yī gè tiáo jiàn fēn zhī fàng rù yī gè dú lì de lèi zhōng。 zhè shǐ dé nǐ kě yǐ gēn jù duì xiàng zì shēn de qíng kuàng jiāng duì xiàng de zhuàng tài zuò wéi yī gè duì xiàng, zhè yī duì xiàng kě yǐ bù yǐ lài yú qí tā duì xiàng 'ér dú lì biàn huà。
míng chēng Strategy
jié gòu
yì tú dìng yì yī xì liè de suàn fǎ , bǎ tā men yī gè gè fēng zhuāng qǐ lái , bìng qiě shǐ tā men kě xiāng hù tì huàn。 běn mó shì shǐ dé suàn fǎ kě dú lì yú shǐ yòng tā de kè hù 'ér biàn huà。
shì yòng xìng xǔ duō xiāng guān de lèi jǐn jǐn shì xíng wéi yòu yì。“ cè lüè” tí gōng liǎo yī zhǒng yòng duō gè xíng wéi zhōng de yī gè xíng wéi lái pèi zhì yī gè lèi de fāng fǎ。
xū yào shǐ yòng yī gè suàn fǎ de bù tóng biàn tǐ。 lì rú, nǐ kě néng huì dìng yì yī xiē fǎn yìng bù tóng de kōng jiān / shí jiān quán héng de suàn fǎ。 dāng zhè xiē biàn tǐ shí xiàn wéi yī gè suàn fǎ de lèi céng cì shí [HO87], kě yǐ shǐ yòng cè lüè mó shì。
suàn fǎ shǐ yòng kè hù bù yìng gāi zhī dào de shù jù。 kě shǐ yòng cè lüè mó shì yǐ bì miǎn bào lù fù zá de、 yǔ suàn fǎ xiāng guān de shù jù jié gòu。
yī gè lèi dìng yì liǎo duō zhǒng xíng wéi , bìng qiě zhè xiē xíng wéi zài zhè gè lèi de cāo zuò zhōng yǐ duō gè tiáo jiàn yǔ jù de xíng shì chū xiàn。 jiàngxiàng guān de tiáo jiàn fēn zhī yí rù tā men gè zì de Strategy lèi zhōng yǐ dài tì zhè xiē tiáo jiàn yǔ jù。
míng chēng TemplateMethod
jié gòu
yì tú dìng yì yī gè cāo zuò zhōng de suàn fǎ de gǔ jià, ér jiāng yī xiē bù zhòu yán chí dào zǐ lèi zhōng。 TemplateMethod shǐ dé zǐ lèi kě yǐ bù gǎi biàn yī gè suàn fǎ de jié gòu jí kě zhòng dìng yì gāi suàn fǎ de mǒu xiē tè dìng bù zhòu。
shì yòng xìng yī cì xìng shí xiàn yī gè suàn fǎ de bù biàn de bù fēn, bìng jiāng kě biàn de xíng wéi liú gěi zǐ lèi lái shí xiàn。
gè zǐ lèi zhōng gōng gòng de xíng wéi yìng bèi tí qǔ chū lái bìng jí zhōng dào yī gè gōng gòng fù lèi zhōng yǐ bì miǎn dài mǎ chóngfù。 zhè shì Opdyke hé Johnson suǒ miáo shù guò de“ zhòng fēn jiě yǐ yī bān huà” de yī gè hěn hǎo de lì zǐ [OJ93]。 shǒu xiān shí bié xiàn yòu dài mǎ zhōng de bù tóng zhī chù, bìng qiě jiāng bù tóng zhī chù fēn lí wéi xīn de cāo zuò。 zuì hòu, yòng yī gè diào yòng zhè xiē xīn de cāo zuò de múbǎn fāng fǎ lái tì huàn zhè xiē bù tóng de dài mǎ。
kòng zhì zǐ lèi kuò zhǎn。 múbǎn fāng fǎ zhǐ zài tè dìng diǎn diào yòng“ hook” cāo zuò( cān jiàn xiào guǒ yī jié), zhè yàng jiù zhǐ yǔn xǔ zài zhè xiē diǎn jìn xíng kuò zhǎn。
míng chēng Visitor
jié gòu
yì tú biǎo shì yī gè zuò yòng yú mǒu duì xiàng jié gòu zhōng de gè yuán sù de cāo zuò。 tā shǐ nǐ kě yǐ zài bù gǎi biàn gè yuán sù de lèi de qián tí xià dìng yì zuò yòng yú zhè xiē yuán sù de xīn cāo zuò。
shì yòng xìng yī gè duì xiàng jié gòu bāo hán hěn duō lèi duì xiàng, tā men yòu bù tóng de jiē kǒu, ér nǐ xiǎng duì zhè xiē duì xiàng shí shī yī xiē yǐ lài yú qí jù tǐ lèi de cāo zuò。
xū yào duì yī gè duì xiàng jié gòu zhōng de duì xiàng jìn xíng hěn duō bù tóng de bìng qiě bù xiāng guān de cāo zuò, ér nǐ xiǎng bì miǎn ràng zhè xiē cāo zuò“ wū rǎn” zhè xiē duì xiàng de lèi。 Visitor shǐ dé nǐ kě yǐ jiàngxiàng guān de cāo zuò jí zhōng qǐ lái dìng yì zài yī gè lèi zhōng。 dāng gāi duì xiàng jié gòu bèi hěn duō yìng yòng gòng xiǎng shí, yòng Visitor mó shì ràng měi gè yìng yòng jǐn bāo hán xū yào yòng dào de cāo zuò。
dìng yì duì xiàng jié gòu de lèi hěn shǎo gǎi biàn, dàn jīng cháng xū yào zài cǐ jié gòu shàng dìng yì xīn de cāo zuò。 gǎi biàn duì xiàng jié gòu lèi xū yào zhòng dìng yì duì suǒ yòu fǎng wèn zhě de jiē kǒu, zhè kě néng xū yào hěn dà de dài jià。 rú guǒ duì xiàng jié gòu lèi jīng cháng gǎi biàn, nà me kě néng hái shì zài zhè xiē lèi zhōng dìng yì zhè xiē cāo zuò jiào hǎo。
wǔ、 chéng gōng cǎi yòng shè jì mó shì de sān gè bù zhòu
rú hé bǎ shè jì mó shì de cǎi yòng hé rì yì lín jìn de zuì hòu qī xiàn、 jǐn suō de yù suàn hé hěn duō gōng sī xiàn yòu de yòu xiàn tuán duì zī yuán xiāng jié hé? yǐ xià shì chéng gōng zhì dìng shè jì mó shì de sān gè bù zhòu。
qiáng dà de tōng xìn hé péi xùn
xǔ duō jī gòu yōng yòu lǐng xiān jì shù, kě néng zhèng shì tōng guò liǎo shè jì shī lùn tán de lùn zhèng huò zhě fēi zhèng shì de gōng rèn zhuān jiā。 zhè xiē lǐng xiān chǎng shāng jiāng tuī guǎng shè jì mó shì cǎi yòng zhōng de kāi fàng tōng xìn, bìng jiāng péi xùn kāi fā jù tǐ shè jì mó shì de tuán duì。 tōng xìn yīngdāng kuà kāi fā tuán duì hé xiàng mù yǐ biàn yù xiān fáng zhǐ cǎi yòng shù jǐng hé duō zhǒng wéi yī de shí xiàn( jǐn jì měi gè Developer/ProjectAntiPattern de shí xiàn)。 péi xùn kě yǐ cǎi yòng zhèng shì de internallunch-and-learns、 zhèng shì de internalclass huò zhě pài yī xiē yuán gōng cān jiā wài bù péi xùn。 zhè xiē péi xùn fāng shì jiāng cù jìn zhèng què de shè jì mó shì yìng yòng chéng xù。 rú guǒ jǐn yòu jí shǎo de guān zhòng néng gòu cān jiā péi xùn, zuì jiā de hòu xuǎn rén shì nà xiē gǎn jué shì hé zài huí lái hòu néng gòu péi xùn qí tóng shì de rén。
shè jì mó shì cǎi yòng zhǐ dǎo
shè jì mó shì kě yòng yú shǐ xiàng mù shòu yì, dàn shì tā men yě kě néng yīn wéi wù yòng 'ér duì yìng yòng chéng xù zào chéng sǔn hài。 yīngdāng gǔ lì cǎi yòng tā men, dàn shì duì qí de cǎi yòng yīngdāng shòu dào shěn yuè hé yàn zhèng。 shè jì mó shì kě yǐ bāo hán zài shè jì hé kāi fā guò chéng zhōng。 zài rèn hé yī zhǒng qíng kuàng zhōng, shè jì mó shì de shǐ yòng yīngdāng yóu shěn yuè zhě què rèn hé yàn zhèng。 zài shěn yuè guò chéng zhōng hái kě néng huì yù dào zhè yàng de qíng kuàng, é wài de shè jì mó shì bù shì yòng yú zuì chū bāo kuò de dì fāng。 jí shǐ huán jìng zhōng méi yòu jìn xíng zhèng shì de shěn yuè, zhè yī bù zhòu yě kě yǐ tōng guò tóng shì shěn yuè huò zhě tuán duì tǎo lùn lái wán chéng。 zhè yī bù zhòu zhōng de shěn yuè zhě yào me shì zhù yào tuán duì de chéng yuán, yào me yǔ tā men jiàn lì kāi fàng tōng xìn。
zhǐ dǎo cǎi yòng duì yú broadexposure lèi bié de shè jì mó shì fēi cháng guān jiàn。 zhè xiē shè jì mó shì jù yòu hěn duō xiāng guān de fēng xiǎn, yīn wéi tā men jiāng chuàng jiàn yǐ lài xìng。 zhè xiē yǐ lài xìng kě néng zài yī xiē duì xiàng lèi zhōng, lì rú, zhǐ gōng zuò zài gèng jiā guǎng fàn de DAO shè jì mó shì shí xiàn fàn wéi zhōng de shù jù fǎng wèn duì xiàng( DAO)、 huò zhě kuà yìng yòng chéng xù biān jiè( rú shǐ yòng ValueObject shè jì mó shì zài yìng yòng chéng xù hèyìng yòng chéng xù céng zhī jiān chuán shū shù jù)。 zhè xiē shè jì mó shì yě kě yǐ yóu xiàng mù zhōng de qí tā rén huò zhě bù tóng xiàng mù de rén shí xiàn, ér qiě shí xiàn yīngdāng chóngxīn shǐ yòng, bù tóng yú chuàng jiàn lìng yī zhǒng dú tè de shí xiàn。
zhòng yòng shí xiàn , bù zhǐ shì shè jì mó shì
zhǐ yào zài chuàng jiàn zì jǐ de shè jì mó shì shí xiàn zhōng yòu yī dìng de mǎn zú, tuán duì hé gōng sī jiù kě yǐ zài zhòng yòng fā shēng zài dài mǎ céng shí, ér bù shì shè jì chuàng yì céng shí huò dé gèng duō yì chù。 shǐ qǐ yè huò yì de zuì chū shè jì mó shì shì gǎi jìn de shí xiàn。 dàn shì, zhēn zhèng de mù biāo shì zhòng yòng shí xiàn。 zhòng yòng shí xiàn jiāng dǎo zhì: a) qí tā kě zhòng yòng de lèi( qǔ jué yú gōng gòng shí xiàn); b) suō duǎn kāi fā shí jiān hé jiàng dī chéng běn; c) suō duǎn wéi hù shí jiān hé jiàng dī chéng běn; d) zài yìng yòng chéng xù zhī jiān hé nèi bù qīng sōng jí chéng。
zhè zhǒng zhòng yòng duì broadexposure shè jì mó shì fēi cháng zhòng yào( yòu shí shì jī běn de)。 zhè xiē shè jì mó shì chuàng jiàn liǎo wài bù yǐ lài xìng( jí chéng jiāng cóng gōng gòng shí xiàn zhōng shòu yì) huò zhě chǎn shēng quán bù de zì dìng yì lèi kù( rú guǒ yòu gōng gòng jī chǔ jiāng kě zhòng yòng)。 isolateduse shè jì mó shì yě kě yǐ cóng zhòng yòng zhōng huò yì, dàn shì rú guǒ tā men shì gēn jù jù tǐ qíng kuàng dìng zhì de, tā men jiù fēi cháng nán yǐ zhòng yòng。
yòu shí nín kě néng huì wèn zì jǐ:“ rú guǒ zhòng yòng bǐ jiào hǎo, wèishénme shè jì mó shì hé kě yǐ zhòng yòng de shí xiàn bù kě yǐ yī tóng yìng yòng ní?” zài wǒ men tǎo lùn shè jì mó shì rú hé shǐ gèng duō dú zhě huò yì de shí hòu cái huì tǎo lùn zhè gè wèn tí。 rú guǒ kě néng, rú guǒ yǐ jīng yù dìng yì liǎo shí xiàn, nà me dá dào guǎng fàn shì yòng xìng zhè gè mù biāo jiù huì fēi cháng kùn nán。 rán 'ér, yī dàn shè jì mó shì bèi yìng yòng dào tè shū de wèn tí yù huò zhě jì shù jī chǔ shè shī zhōng, nà me jiù kě yǐ zhòng yòng zài gāi huán jìng zhōng chǎn shēng de shí xiàn。
jià gòu zhōng de shè jì mó shì
zhè kàn qǐ lái xiàng shì yī jiàn kě pà de rèn wù, xū yào zhǎng wò shè jì mó shì rú hé yìng yòng zài shí jì qíng kuàng zhōng, rú hé gòu jiàn yōu zhì de shí xiàn, yǐ jí rú hé cù jìn zhòng yòng shí xiàn。 wán chéng gāi rèn wù de fāng fǎ zhī yī jiù shì zài huán jìng zhōng yǐn rù yìng yòng chéng xù jià gòu。 yìng yòng chéng xù jià gòu tí gōng liǎo yìng yòng chéng xù xū yào de jié gòu, cóng 'ér shǐ kāi fā tuán duì kě yǐ guān zhù yìng yòng chéng xù de yù luó ji。 zhè bāo hán liǎo yǐ shí xiàn de shè jì mó shì 。 chú liǎo zhòng yòng shè jì mó shì gài niàn huò zhě dān gè shí xiàn zhī wài, kě yǐ zài duō gè xiàng mù hèyìng yòng chéng xù zhī jiān zhòng yòng jià gòu。 zhè zhǒng gòng xiǎng de gōng gòng shí xiàn què bǎo liǎo jiān róng xìng, bìng wéi kāi fā hé wéi hù duō zhǒng bù tóng de shí xiàn tí gōng liǎo yī zhǒng dī chéng běn tì dài fāng 'àn。 jiān róng xìng tí gōng liǎo chóngxīn shǐ yòng xū yào de jì shù jī chǔ。 méi yòu zú gòu de piān fú zài zhè lǐ shēn rù tǎo lùn jià gòu de qí tā zhòng yào pǐn zhì, rú yùn xíng shí jiān cè hé guǎn lǐ、 kě pèi zhì yìng yòng chéng xù luó ji hé shì yìng xìng xíng wéi děng。 nín kě yǐ cóng CarnegieMellonSoftwareEngineeringInstitute(www.sei.cmu.edu/ata/ata_init.html) zhōng xué xí dào gèng duō yòu guān jià gòu de zhī shí。 |
shè jì mó shì de xíng xiàng bǐ yù |
1、 FACTORY héng zhuī MM shǎo bù liǎo qǐng chī fàn liǎo, mài dāng láo de jī chì hé kěn dé jī de jī chì dōushì MM 'ài chī de dōng xī, suī rán kǒu wèi yòu suǒ bù tóng, dàn bù guǎn nǐ dài MM qù mài dāng láo huò kěn dé jī, zhǐ guǎn xiàng fú wù yuán shuō“ lái sì gè jī chì” jiù xíng liǎo。 mài dāng láo hé kěn dé jī jiù shì shēng chǎn jī chì de Factory
gōng chǎng mó shì: kè hù lèi hé gōng chǎng lèi fēn kāi。 xiāo fèi zhě rèn hé shí hòu xū yào mǒu zhǒng chǎn pǐn, zhǐ xū xiàng gōng chǎng qǐng qiú jí kě。 xiāo fèi zhě wú xū xiū gǎi jiù kě yǐ jiē nà xīn chǎn pǐn。 quē diǎn shì dāng chǎn pǐn xiū gǎi shí, gōng chǎng lèi yě yào zuò xiāng yìng de xiū gǎi。 rú: rú hé chuàng jiàn jí rú hé xiàng kè hù duān tí gōng。
2、 BUILDER héng MM zuì 'ài tīng de jiù shì“ wǒ 'ài nǐ” zhè jù huà liǎo, jiàn dào bù tóng dì fāng de MM, yào néng gòu yòng tā men de fāng yán gēn tā shuō zhè jù huà 'ò, wǒ yòu yī gè duō zhǒng yǔ yán fān yì jī, shàng miàn měi zhǒng yǔ yán dōuyòu yī gè 'àn jiàn, jiàn dào MM wǒ zhǐ yào 'àn duì yìng de jiàn, tā jiù néng gòu yòng xiāng yìng de yǔ yán shuō chū“ wǒ 'ài nǐ” zhè jù huà liǎo, guó wài de MM yě kě yǐ qīng sōng gǎo diān, zhè jiù shì wǒ de“ wǒ 'ài nǐ” builder。( zhè yī dìng bǐ měi jūn zài yī lā kè yòng de fān yì jī hǎo mài)
jiàn zào mó shì: jiāng chǎn pǐn de nèi bù biǎo xiàng hé chǎn pǐn de shēng chéng guò chéng fēn gē kāi lái, cóng 'ér shǐ yī gè jiàn zào guò chéng shēng chéng jù yòu bù tóng de nèi bù biǎo xiàng de chǎn pǐn duì xiàng。 jiàn zào mó shì shǐ dé chǎn pǐn nèi bù biǎo xiàng kě yǐ dú lì de biàn huà, kè hù bù bì zhī dào chǎn pǐn nèi bù zǔ chéng de xì jié。 jiàn zào mó shì kě yǐ qiáng zhì shí xíng yī zhǒng fēn bù zhòu jìn xíng de jiàn zào guò chéng。
3、 FACTORYMETHOD héng qǐng MM qù mài dāng láo chī hàn bǎo, bù tóng de MM yòu bù tóng de kǒu wèi, yào měi gèdōu jì zhù shì yī jiàn fán rén de shì qíng, wǒ yī bān cǎi yòng FactoryMethod mó shì, dài zhe MM dào fú wù yuán nà 'ér, shuō“ yào yī gè hàn bǎo”, jù tǐ yào shénme yàng de hàn bǎo ní, ràng MM zhí jiē gēn fú wù yuán shuō jiù xíng liǎo。
gōng chǎng fāng fǎ mó shì: hé xīn gōng chǎng lèi bù zài fù zé suǒ yòu chǎn pǐn de chuàng jiàn, ér shì jiāng jù tǐ chuàng jiàn de gōng zuò jiāo gěi zǐ lèi qù zuò, chéng wéi yī gè chōu xiàng gōng chǎng juésè, jǐn fù zé gěi chū jù tǐ gōng chǎng lèi bì xū shí xiàn de jiē kǒu, ér bù jiē chù nǎ yī gè chǎn pǐn lèi yīngdāng bèi shí lì huà zhè zhǒng xì jié。
4、 PROTOTYPE héng gēn MM yòng QQ liáo tiān, yī dìng yào shuō xiē shēn qíng de huà yǔ liǎo, wǒ sōu jí liǎo hǎo duō ròu má de qíng huà, xū yào shí zhǐ yào copy chū lái fàng dào QQ lǐ miàn jiù xíng liǎo, zhè jiù shì wǒ de qíng huà prototype liǎo。( 100 kuài qián yī fèn, nǐ yào bù yào)
yuán shǐ mó xíng mó shì: tōng guò gěi chū yī gè yuán xíng duì xiàng lái zhǐ míng suǒ yào chuàng jiàn de duì xiàng de lèi xíng, rán hòu yòng fù zhì zhè gè yuán xíng duì xiàng de fāng fǎ chuàng jiàn chū gèng duō tóng lèi xíng de duì xiàng。 yuán shǐ mó xíng mó shì yǔn xǔ dòng tài de zēng jiā huò jiǎn shǎo chǎn pǐn lèi, chǎn pǐn lèi bù xū yào fēi dé yòu rèn hé shì xiān què dìng de děng jí jié gòu, yuán shǐ mó xíng mó shì shì yòng yú rèn hé de děng jí jié gòu。 quē diǎn shì měi yī gè lèi dū bì xū pèi bèi yī gè kè lóng fāng fǎ。
5、 SINGLETON héng 'ǎn yòu 6 gè piào liàng de lǎo pó, tā men de lǎo gōng dōushì wǒ, wǒ jiù shì wǒ men jiā lǐ de lǎo gōng Sigleton, tā men zhǐ yào shuō dào“ lǎo gōng”, dōushì zhǐ de tóng yī gè rén, nà jiù shì wǒ ( gāng cái zuò liǎo gè mèng lā, nǎ yòu zhè me hǎo de shì )
dān lì mó shì: dān lì mó shì què bǎo mǒu yī gè lèi zhǐ yòu yī gè shí lì, ér qiě zì xíng shí lì huà bìng xiàng zhěng gè xì tǒng tí gōng zhè gè shí lì dān lì mó shì。 dān lì mó shì zhǐ yìng zài yòu zhēn zhèng de“ dān yī shí lì” de xū qiú shí cái kě shǐ yòng。
6、 ADAPTER héng zài péng yǒu jù huì shàng pèng dào liǎo yī gè měi nǚ Sarah, cóng xiāng gǎng lái de, kě wǒ bù huì shuō yuè yǔ, tā bù huì shuō pǔ tōng huà, zhǐ hǎo qiú zhù yú wǒ de péng yǒu kent liǎo, tā zuò wéi wǒ hé Sarah zhī jiān de Adapter, ràng wǒ hé Sarah kě yǐ xiāng hù jiāo tán liǎo ( yě bù zhī dào tā huì bù huì shuǎ wǒ )
shì pèi qì( biàn yā qì) mó shì: bǎ yī gè lèi de jiē kǒu biàn huàn chéng kè hù duān suǒ qī dài de lìng yī zhǒng jiē kǒu, cóng 'ér shǐ yuán běn yīn jiē kǒu yuán yīn bù pǐ pèi 'ér wú fǎ yī qǐ gōng zuò de liǎng gè lèi néng gòu yī qǐ gōng zuò。 shì pèi lèi kě yǐ gēn jù cān shù fǎn hái yī gè hé shì de shí lì gěi kè hù duān。
7、 BRIDGE héng zǎo shàng pèng dào MM, yào shuō zǎo shàng hǎo, wǎn shàng pèng dào MM, yào shuō wǎn shàng hǎo; pèng dào MM chuān liǎo jiàn xīn yī fú, yào shuō nǐ de yī fú hǎo piào liàng 'ò, pèng dào MM xīn zuò de fàxíng, yào shuō nǐ de tóu fā hǎo piào liàng 'ò。 bù yào wèn wǒ“ zǎo shàng pèng dào MM xīn zuò liǎo gè fàxíng zěn me shuō” zhè zhǒng wèn tí, zì jǐ yòng BRIDGE zǔ hé yī xià bù jiù xíng liǎo
qiáo liáng mó shì: jiāng chōu xiàng huà yǔ shí xiàn huà tuō 'ǒu, shǐ dé 'èr zhě kě yǐ dú lì de biàn huà, yě jiù shì shuō jiāng tā men zhī jiān de qiáng guān lián biàn chéng ruò guān lián, yě jiù shì zhǐ zài yī gè ruǎn jiàn xì tǒng de chōu xiàng huà hé shí xiàn huà zhī jiān shǐ yòng zǔ hé / jù hé guān xì 'ér bù shì jì chéng guān xì, cóng 'ér shǐ liǎng zhě kě yǐ dú lì de biàn huà。
8、 COMPOSITE héng Mary jīn tiān guò shēng rì。“ wǒ guò shēng rì, nǐ yào sòng wǒ yī jiàn lǐ wù。”“ ǹg, hǎo bā, qù shāng diàn, nǐ zì jǐ tiǎo。”“ zhè jiàn T xù tǐng piào liàng, mǎi, zhè tiáo qún zǐ hǎo kàn, mǎi, zhè gè bāo yě bù cuò, mǎi。”“ wèi, mǎi liǎo sān jiàn liǎo yā, wǒ zhǐ dāyìng sòng yī jiàn lǐ wù de 'ò。”“ shénme yā, T xù jiā qún zǐ jiā bāo bāo, zhèng hǎo pèi chéng yī tào yā, xiǎo jiě, má fán nǐ bāo qǐ lái。”“ ……”, MM dū huì yòng Composite mó shì liǎo, nǐ huì liǎo méi yòu?
hé chéng mó shì: hé chéng mó shì jiāng duì xiàng zǔ zhì dào shù jié gòu zhōng, kě yǐ yòng lái miáo shù zhěng tǐ yǔ bù fēn de guān xì。 hé chéng mó shì jiù shì yī gè chǔlǐ duì xiàng de shù jié gòu de mó shì。 hé chéng mó shì bǎ bù fēn yǔ zhěng tǐ de guān xì yòng shù jié gòu biǎo shì chū lái。 hé chéng mó shì shǐ dé kè hù duān bǎ yī gè gè dān dú de chéngfèn duì xiàng hé yóu tā men fù hé 'ér chéng de hé chéng duì xiàng tóng děng kàn dài。
9、 DECORATOR héng Mary guò wán lún dào Sarly guò shēng rì, hái shì bù yào jiào tā zì jǐ tiǎo liǎo, bù rán zhè gè yuè huǒ shí fèi kěn dìng wán wán, ná chū wǒ qù nián zài huá shān dǐng shàng zhào de zhào piàn, zài bèi miàn xiě shàng“ zuì hǎo dídí lǐ wù, jiù shì 'ài nǐ de Fita”, zài dào jiē shàng lǐ pǐn diàn mǎi liǎo gè xiàng kuàng( mài lǐ pǐn de MM yě hěn piào liàng 'ò), zài zhǎo gé bì gǎo měi shù shè jì de Mike shè jì liǎo yī gè piào liàng de hé zǐ zhuāng qǐ lái……, wǒ mendōu shì Decorator, zuì zhōng dōuzài xiū shì wǒ zhè gè rén yā, zěn me yàng, kàn dǒng liǎo má?
zhuāng shì mó shì: zhuāng shì mó shì yǐ duì kè hù duān tòu míng de fāng shì kuò zhǎn duì xiàng de gōng néng, shì jì chéng guān xì de yī gè tì dài fāng 'àn, tí gōng bǐ jì chéng gèng duō de líng huó xìng。 dòng tài gěi yī gè duì xiàng zēng jiā gōng néng, zhè xiē gōng néng kě yǐ zài dòng tài de chè xiāo。 zēng jiā yóu yī xiē jī běn gōng néng de pái liè zǔ hé 'ér chǎn shēng de fēi cháng dà liàng de gōng néng。
10、 FACADE héng wǒ yòu yī gè zhuān yè de Nikon xiàngjī, wǒ jiù xǐ huān zì jǐ shǒu dòng tiáoguāng juàn、 kuài mén, zhè yàng zhào chū lái de zhào piàn cái zhuān yè, dàn MM kě bù dǒng zhè xiē, jiào liǎo bàn tiān yě bù huì。 xìng hǎo xiàngjī yòu Facade shè jì mó shì , bǎ xiàngjī tiáozhěng dào zì dòng dàng, zhǐ yào duì zhǔn mù biāo 'àn kuài mén jiù xíng liǎo, yī qiē yóu xiàngjī zì dòng tiáozhěng, zhè yàng MM yě kě yǐ yòng zhè gè xiàngjī gěi wǒ pāi zhāng zhào piàn liǎo。
mén miàn mó shì: wài bù yǔ yī gè zǐ xì tǒng de tōng xìn bì xū tōng guò yī gè tǒng yī de mén miàn duì xiàng jìn xíng。 mén miàn mó shì tí gōng yī gè gāo céng cì de jiē kǒu, shǐ dé zǐ xì tǒng gèng yì yú shǐ yòng。 měi yī gè zǐ xì tǒng zhǐ yòu yī gè mén miàn lèi, ér qiě cǐ mén miàn lèi zhǐ yòu yī gè shí lì, yě jiù shì shuō tā shì yī gè dān lì mó shì。 dàn zhěng gè xì tǒng kě yǐ yòu duō gè mén miàn lèi。
11、 FLYWEIGHT héng měi tiān gēn MM fāduǎnxìn, shǒu zhǐ dū lèisǐ liǎo, zuì jìn mǎi liǎo gè xīn shǒu jī, kě yǐ bǎ yī xiē cháng yòng de jù zǐ cún zài shǒu jī lǐ, yào yòng de shí hòu, zhí jiē ná chū lái, zài qián miàn jiā shàng MM de míng zì jiù kě yǐ fā sòng liǎo, zài bù yòng yī gè zì yī gè zì qiāo liǎo。 gòng xiǎng de jù zǐ jiù shì Flyweight, MM de míng zì jiù shì tí qǔ chū lái de wài bù tè zhēng, gēn jù shàng xià wén qíng kuàng shǐ yòng。
xiǎng yuán mó shì: FLYWEIGHT zài quán jī bǐ sài zhōng zhǐ zuì qīng liàng jí。 xiǎng yuán mó shì yǐ gòng xiǎng de fāng shì gāo xiào de zhī chí dà liàng de xì lì dù duì xiàng。 xiǎng yuán mó shì néng zuò dào gòng xiǎng de guān jiàn shì qū fēn nèi yùn zhuàng tài hé wài yùn zhuàng tài。 nèi yùn zhuàng tài cún chǔ zài xiǎng yuán nèi bù, bù huì suí huán jìng de gǎi biàn 'ér yòu suǒ bù tóng。 wài yùn zhuàng tài shì suí huán jìng de gǎi biàn 'ér gǎi biàn de。 wài yùn zhuàng tài bù néng yǐng xiǎng nèi yùn zhuàng tài, tā men shì xiāng hù dú lì de。 jiāng kě yǐ gòng xiǎng de zhuàng tài hé bù kě yǐ gòng xiǎng de zhuàng tài cóng cháng guī lèi zhōng qū fēn kāi lái, jiāng bù kě yǐ gòng xiǎng de zhuàng tài cóng lèi lǐ tī chú chū qù。 kè hù duān bù kě yǐ zhí jiē chuàng jiàn bèi gòng xiǎng de duì xiàng, ér yīngdāng shǐ yòng yī gè gōng chǎng duì xiàng fù zé chuàng jiàn bèi gòng xiǎng de duì xiàng。 xiǎng yuán mó shì dà fú dù de jiàng dī nèi cún zhōng duì xiàng de shù liàng。
12、 PROXY héng gēn MM zài wǎng shàng liáo tiān, yī kāi tóu zǒng shì“ hi, nǐ hǎo” ,“ nǐ cóng nǎ 'ér lái yā?”“ nǐ duō dà liǎo?”“ shēn gāo duō shǎo yā?” zhè xiē huà, zhēn fán rén, xiě gè chéng xù zuò wéi wǒ de Proxy bā, fán shì jiē shōu dào zhè xiē huà dū shè zhì hǎo liǎo zì dòng de huí dá, jiē shōu dào qí tā de huà shí zài tōng zhī wǒ huí dá, zěn me yàng, kù bā。
dài lǐ mó shì: dài lǐ mó shì gěi mǒu yī gè duì xiàng tí gōng yī gè dài lǐ duì xiàng, bìng yóu dài lǐ duì xiàng kòng zhì duì yuán duì xiàng de yǐn yòng。 dài lǐ jiù shì yī gè rén huò yī gè jī gòu dài biǎo lìng yī gè rén huò zhě yī gè jī gòu cǎi qǔ xíng dòng。 mǒu xiē qíng kuàng xià, kè hù bù xiǎng huò zhě bù néng gòu zhí jiē yǐn yòng yī gè duì xiàng, dài lǐ duì xiàng kě yǐ zài kè hù hé mù biāo duì xiàng zhí jiē qǐ dào zhōng jiè de zuò yòng。 kè hù duān fēn biàn bù chū dài lǐ zhù tí duì xiàng yǔ zhēn shí zhù tí duì xiàng。 dài lǐ mó shì kě yǐ bìng bù zhī dào zhēn zhèng de bèi dài lǐ duì xiàng, ér jǐn jǐn chí yòu yī gè bèi dài lǐ duì xiàng de jiē kǒu, zhè shí hòu dài lǐ duì xiàng bù néng gòu chuàng jiàn bèi dài lǐ duì xiàng, bèi dài lǐ duì xiàng bì xū yòu xì tǒng de qí tā juésè dài wéi chuàng jiàn bìng chuán rù。
13、 CHAINOFRESPONSIBLEITY héng wǎn shàng qù shàng yīng yǔ kè, wèile hǎo kāi liù zuò dào liǎo zuì hòu yī pái, wā, qián miàn zuò liǎo hǎo jǐ gè piào liàng de MM 'āi, zhǎo zhāng zhǐ tiáo, xiě shàng“ Hi, kě yǐ zuò wǒ de nǚ péng yǒu má? rú guǒ bù yuàn yì qǐng xiàng qiánzhuàn”, zhǐ tiáo jiù yī gè jiē yī gè de chuán shàng qù liǎo, zāo gāo, chuán dào dì yī pái de MM bǎ zhǐ tiáo chuán gěi lǎo shī liǎo, tīng shuō shì gè lǎo chǔnǚ yā, kuài páo !
zé rèn liàn mó shì: zài zé rèn liàn mó shì zhōng, hěn duō duì xiàng yóu měi yī gè duì xiàng duì qí xià jiā de yǐn yòng 'ér jiē qǐ lái xíng chéng yī tiáo liàn。 qǐng qiú zài zhè gè liàn shàng chuán dì, zhí dào liàn shàng de mǒu yī gè duì xiàng jué dìng chǔlǐ cǐ qǐng qiú。 kè hù bìng bù zhī dào liàn shàng de nǎ yī gè duì xiàng zuì zhōng chǔlǐ zhè gè qǐng qiú, xì tǒng kě yǐ zài bù yǐng xiǎng kè hù duān de qíng kuàng xià dòng tài de chóngxīn zǔ zhì liàn hé fēn pèi zé rèn。 chǔlǐ zhě yòu liǎng gè xuǎn zé: chéng dān zé rèn huò zhě bǎ zé rèn tuī gěi xià jiā。 yī gè qǐng qiú kě yǐ zuì zhōng bù bèi rèn hé jiē shōu duān duì xiàng suǒ jiē shòu。
14、 COMMAND héng 'ǎn yòu yī gè MM jiā lǐ guǎn dé tè bié yán, méi fǎ jiàn miàn, zhǐ hǎo jiè zhù yú tā dì dì zài wǒ men liǎ zhī jiān chuán sòng xìn xī, tā duì wǒ yòu shénme zhǐ shì, jiù xiě yī zhāng zhǐ tiáo ràng tā dì dì dài gěi wǒ。 zhè bù, tā dì dì yòu chuán sòng guò lái yī gè COMMAND, wèile gǎn xiè tā, wǒ qǐng tā chī liǎo wǎn zá jiàng miàn, nǎ zhī dào tā shuō:“ wǒ tóng shí gěi wǒ jiě jiě sān gè nán péng yǒu sòng COMMAND, jiù shù nǐ zuì xiǎo qì, cái qǐng wǒ chī miàn。”
mìng lìng mó shì: mìng lìng mó shì bǎ yī gè qǐng qiú huò zhě cāo zuò fēng zhuāng dào yī gè duì xiàng zhōng。 mìng lìng mó shì bǎ fā chū mìng lìng de zé rèn hé zhí xíng mìng lìng de zé rèn fēn gē kāi, wěi pài gěi bù tóng de duì xiàng。 mìng lìng mó shì yǔn xǔ qǐng qiú de yī fāng hé fā sòng de yī fāng dú lì kāi lái, shǐ dé qǐng qiú de yī fāng bù bì zhī dào jiē shōu qǐng qiú de yī fāng de jiē kǒu, gèng bù bì zhī dào qǐng qiú shì zěn me bèi jiē shōu, yǐ jí cāo zuò shì fǒu zhí xíng, hé shí bèi zhí xíng yǐ jí shì zěn me bèi zhí xíng de。 xì tǒng zhī chí mìng lìng de chè xiāo。
15、 INTERPRETER héng 'ǎn yòu yī gè《 pào MM zhēn jīng》, shàng miàn yòu gè zhǒng pào MM de gōng lüè, bǐ rú shuō qù chī xī cān de bù zhòu、 qù kàn diàn yǐng de fāng fǎ děng děng, gēn MM yuē huì shí, zhǐ yào zuò yī gè Interpreter, zhào zhe shàng miàn de jiǎo běn zhí xíng jiù kě yǐ liǎo。
jiě shì qì mó shì: gěi dìng yī gè yǔ yán hòu, jiě shì qì mó shì kě yǐ dìng yì chū qí wén fǎ de yī zhǒng biǎo shì, bìng tóng shí tí gōng yī gè jiě shì qì。 kè hù duān kě yǐ shǐ yòng zhè gè jiě shì qì lái jiě shì zhè gè yǔ yán zhōng de jù zǐ。 jiě shì qì mó shì jiāng miáo shù zěn yàng zài yòu liǎo yī gè jiǎn dān de wén fǎ hòu, shǐ yòng mó shì shè jì jiě shì zhè xiē yǔ jù。 zài jiě shì qì mó shì lǐ miàn tí dào de yǔ yán shì zhǐ rèn hé jiě shì qì duì xiàng néng gòu jiě shì de rèn hé zǔ hé。 zài jiě shì qì mó shì zhōng xū yào dìng yì yī gè dài biǎo wén fǎ de mìng lìng lèi de děng jí jié gòu, yě jiù shì yī xì liè de zǔ hé guī zé。 měi yī gè mìng lìng duì xiàng dōuyòu yī gè jiě shì fāng fǎ, dài biǎo duì mìng lìng duì xiàng de jiě shì。 mìng lìng duì xiàng de děng jí jié gòu zhōng de duì xiàng de rèn hé pái liè zǔ hé dōushì yī gè yǔ yán。
16、 ITERATOR héng wǒ 'ài shàng liǎo Mary, bù gù yī qiē de xiàng tā qiú hūn。
Mary:“ xiǎng yào wǒ gēn nǐ jié hūn, dé dāyìng wǒ de tiáo jiàn”
wǒ:“ shénme tiáo jiàn wǒdōu dāyìng, nǐ shuō bā”
Mary:“ wǒ kàn shàng liǎo nà gè yī kè lā de zuàn shí”
wǒ:“ wǒ mǎi, wǒ mǎi, hái yòu má?”
Mary:“ wǒ kàn shàng liǎo hú biān de nà dòng bié shù”
wǒ:“ wǒ mǎi, wǒ mǎi, hái yòu má?”
Mary:“ wǒ kàn shàng nà liàng fǎ lā lì páo chē”
wǒ nǎo dài wēng de yī shēng, zuò zài yǐ zǐ shàng, yī yǎo yá:“ wǒ mǎi, wǒ mǎi, hái yòu má?”
dié dài zǐ mó shì: dié dài zǐ mó shì kě yǐ shùn xù fǎng wèn yī gè jù jí zhōng de yuán sù 'ér bù bì bào lù jù jí de nèi bù biǎo xiàng。 duō gè duì xiàng jù zài yī qǐ xíng chéng de zǒng tǐ chēng zhī wéi jù jí, jù jí duì xiàng shì néng gòu bāo róng yī zǔ duì xiàng de róng qì duì xiàng。 dié dài zǐ mó shì jiāng dié dài luó ji fēng zhuāng dào yī gè dú lì de zǐ duì xiàng zhōng, cóng 'ér yǔ jù jí běn shēn gé kāi。 dié dài zǐ mó shì jiǎn huà liǎo jù jí de jiè miàn。 měi yī gè jù jí duì xiàng dōukě yǐ yòu yī gè huò yī gè yǐ shàng de dié dài zǐ duì xiàng, měi yī gè dié dài zǐ de dié dài zhuàng tài kě yǐ shì bǐ cǐ dú lì de。 dié dài suàn fǎ kě yǐ dú lì yú jù jí juésè biàn huà。
17、 MEDIATOR héng sì gè MM dǎ má jiāng, xiāng hù zhī jiān shuí yīnggāi gěi shuí duō shǎo qián suàn bù qīng chǔ liǎo, xìng kuī dāng shí wǒ zài bàng biān, àn zhào gè zì de chóu mǎ shǔsuàn qián, zuàn liǎo qián de cóng wǒ zhè lǐ ná, péi liǎo qián de yě fù gěi wǒ, yī qiē jiù OK lā, ǎn dé dào liǎo sì gè MM de diàn huà。
tiáotíng zhě mó shì: tiáotíng zhě mó shì bāo zhuāng liǎo yī xì liè duì xiàng xiāng hù zuò yòng de fāng shì, shǐ dé zhè xiē duì xiàng bù bì xiāng hù míng xiǎn zuò yòng。 cóng 'ér shǐ tā men kě yǐ sōng sàn 'ǒu hé。 dāng mǒu xiē duì xiàng zhī jiān de zuò yòng fā shēng gǎi biàn shí, bù huì lì jí yǐng xiǎng qí tā de yī xiē duì xiàng zhī jiān de zuò yòng。 bǎo zhèng zhè xiē zuò yòng kě yǐ bǐ cǐ dú lì de biàn huà。 tiáotíng zhě mó shì jiāng duō duì duō de xiāng hù zuò yòng zhuǎn huà wéi yī duì duō de xiāng hù zuò yòng。 tiáotíng zhě mó shì jiāng duì xiàng de xíng wéi hé xié zuò chōu xiàng huà, bǎ duì xiàng zài xiǎo chǐ dù de xíng wéi shàng yǔ qí tā duì xiàng de xiāng hù zuò yòng fēn kāi chǔlǐ。
18、 MEMENTO héng tóng shí gēn jǐ gè MM liáo tiān shí, yī dìng yào jì qīng chǔ gāng cái gēn MM shuō liǎo xiē shénme huà, bù rán MM fā xiàn liǎo huì bù gāo xīng de 'ò, xìng kuī wǒ yòu gè bèi wàng lù, gāng cái yǔ nǎ gè MM shuō liǎo shénme huà wǒdōu kǎo bèi yī fèn fàng dào bèi wàng lù lǐ miàn bǎo cún, zhè yàng kě yǐ suí shí chá kàn yǐ qián de jì lù lā。
bèi wàng lù mó shì: bèi wàng lù duì xiàng shì yī gè yòng lái cún chǔ lìng wài yī gè duì xiàng nèi bù zhuàng tài de kuài zhào de duì xiàng。 bèi wàng lù mó shì de yòng yì shì zài bù pò huài fēng zhuāng de tiáo jiàn xià, jiāng yī gè duì xiàng de zhuàng tài zhuō zhù, bìng wài bù huà, cún chǔ qǐ lái, cóng 'ér kě yǐ zài jiāng lái hé shì de shí hòu bǎ zhè gè duì xiàng hái yuán dào cún chǔ qǐ lái de zhuàng tài。
19、 OBSERVER héng xiǎng zhī dào zán men gōng sī zuì xīn MM qíng bào má? jiā rù gōng sī de MM qíng bào yóu jiàn zǔ jiù xíng liǎo, tom fù zé sōu jí qíng bào, tā fā xiàn de xīn qíng bào bù yòng yī gè yī gè tōng zhī wǒ men, zhí jiē fā bù gěi yóu jiàn zǔ, wǒ men zuò wéi dìng yuè zhě( guān chá zhě) jiù kě yǐ jí shí shōu dào qíng bào lā
guān chá zhě mó shì: guān chá zhě mó shì dìng yì liǎo yī zhǒng yī duì duō de yǐ lài guān xì, ràng duō gè guān chá zhě duì xiàng tóng shí jiān tīng mǒu yī gè zhù tí duì xiàng。 zhè gè zhù tí duì xiàng zài zhuàng tài shàng fā shēng biàn huà shí, huì tōng zhī suǒ yòu guān chá zhě duì xiàng, shǐ tā men néng gòu zì dòng gēngxīn zì jǐ。
20、 STATE héng gēn MM jiāo wǎng shí, yī dìng yào zhù yì tā de zhuàng tài 'ò, zài bù tóng de zhuàng tài shí tā de xíng wéi huì yòu bù tóng, bǐ rú nǐ yuē tā jīn tiān wǎn shàng qù kàn diàn yǐng, duì nǐ méi xīng qù de MM jiù huì shuō“ yòu shì qíng lā”, duì nǐ bù tǎo yàn dàn hái méi xǐ huān shàng de MM jiù huì shuō“ hǎo 'ā, bù guò kě yǐ dài shàng wǒ tóng shì me?”, yǐ jīng xǐ huān shàng nǐ de MM jiù huì shuō“ jǐ diǎn zhōng? kàn wán diàn yǐng zài qù pào bā zěn me yàng?”, dāng rán nǐ kàn diàn yǐng guò chéng zhōng biǎo xiàn liáng hǎo de huà, yě kě yǐ bǎ MM de zhuàng tài cóng bù tǎo yàn bù xǐ huān biàn chéng xǐ huān 'ò。
zhuàng tài mó shì: zhuàng tài mó shì yǔn xǔ yī gè duì xiàng zài qí nèi bù zhuàng tài gǎi biàn de shí hòu gǎi biàn xíng wéi。 zhè gè duì xiàng kàn shàng qù xiàng shì gǎi biàn liǎo tā de lèi yī yàng。 zhuàng tài mó shì bǎ suǒ yán jiū de duì xiàng de xíng wéi bāo zhuāng zài bù tóng de zhuàng tài duì xiàng lǐ, měi yī gè zhuàng tài duì xiàng dū shǔ yú yī gè chōu xiàng zhuàng tài lèi de yī gè zǐ lèi。 zhuàng tài mó shì de yì tú shì ràng yī gè duì xiàng zài qí nèi bù zhuàng tài gǎi biàn de shí hòu, qí xíng wéi yě suí zhī gǎi biàn。 zhuàng tài mó shì xū yào duì měi yī gè xì tǒng kě néng qǔ dé de zhuàng tài chuàng lì yī gè zhuàng tài lèi de zǐ lèi。 dāng xì tǒng de zhuàng tài biàn huà shí, xì tǒng biàn gǎi biàn suǒ xuǎn de zǐ lèi。
21、 STRATEGY héng gēn bù tóng lèi xíng de MM yuē huì, yào yòng bù tóng de cè lüè, yòu de qǐng diàn yǐng bǐ jiào hǎo, yòu de zé qù chī xiǎo chī xiào guǒ bù cuò, yòu de qù hǎi biān làng màn zuì hé shì, dān mùdì dōushì wèile dé dào MM de fāng xīn, wǒ de zhuī MM jǐn náng zhōng yòu hǎo duō Strategy 'ò。
cè lüè mó shì: cè lüè mó shì zhēn duì yī zǔ suàn fǎ, jiāng měi yī gè suàn fǎ fēng zhuāng dào jù yòu gòng tóng jiē kǒu de dú lì de lèi zhōng, cóng 'ér shǐ dé tā men kě yǐ xiāng hù tì huàn。 cè lüè mó shì shǐ dé suàn fǎ kě yǐ zài bù yǐng xiǎng dào kè hù duān de qíng kuàng xià fā shēng biàn huà。 cè lüè mó shì bǎ xíng wéi hé huán jìng fēn kāi。 huán jìng lèi fù zé wéi chí hé chá xún xíng wéi lèi, gè zhǒng suàn fǎ zài jù tǐ de cè lüè lèi zhōng tí gōng。 yóu yú suàn fǎ hé huán jìng dú lì kāi lái, suàn fǎ de zēng jiǎn, xiū gǎi dōubù huì yǐng xiǎng dào huán jìng hé kè hù duān。
22、 TEMPLATEMETHOD héng héng kàn guò《 rú hé shuō fú nǚ shēng shàng chuáng》 zhè bù jīng diǎn wén zhāng má? nǚ shēng cóng rèn shí dào shàng chuáng de bù biàn de bù zhòu fēn wéi qiǎo yù、 dǎ pò jiāng jú、 zhǎn kāi zhuī qiú、 jiē wěn、 qián xì、 dòng shǒu、 ài fǔ、 jìn qù bā dà bù zhòu (Templatemethod), dàn měi gè bù zhòu zhēn duì bù tóng de qíng kuàng, dōuyòu bù yī yàng de zuò fǎ, zhè jiù yào kàn nǐ suí jī yìng biàn lā ( jù tǐ shí xiàn );
múbǎn fāng fǎ mó shì: múbǎn fāng fǎ mó shì zhǔn bèi yī gè chōu xiàng lèi, jiāng bù fēn luó ji yǐ jù tǐ fāng fǎ yǐ jí jù tǐ gòu zào zǐ de xíng shì shí xiàn, rán hòu shēng míng yī xiē chōu xiàng fāng fǎ lái pò shǐ zǐ lèi shí xiàn shèng yú de luó ji。 bù tóng de zǐ lèi kě yǐ yǐ bù tóng de fāng shì shí xiàn zhè xiē chōu xiàng fāng fǎ, cóng 'ér duì shèng yú de luó ji yòu bù tóng de shí xiàn。 xiān zhì dìng yī gè dǐng jí luó ji kuàng jià, ér jiāng luó ji de xì jié liú gěi jù tǐ de zǐ lèi qù shí xiàn。
23、 VISITOR héng qíng rén jié dào liǎo, yào gěi měi gè MM sòng yī shù xiān huā hé yī zhāng kǎ piàn, kě shì měi gè MM sòng de huā dōuyào zhēn duì tā gè rén de tè diǎn, měi zhāng kǎ piàn yě yào gēn jù gè rén de tè diǎn lái tiǎo, wǒ yī gè rén nǎ gǎo dé qīng chǔ, hái shì zhǎo huā diàn lǎo bǎn hé lǐ pǐn diàn lǎo bǎn zuò yī xià Visitor, ràng huā diàn lǎo bǎn gēn jù MM de tè diǎn xuǎn yī shù huā, ràng lǐ pǐn diàn lǎo bǎn yě gēn jù měi gè rén tè diǎn xuǎn yī zhāng kǎ, zhè yàng jiù qīng sōng duō liǎo;
fǎng wèn zhě mó shì: fǎng wèn zhě mó shì de mù de shì fēng zhuāng yī xiē shī jiā yú mǒu zhǒng shù jù jié gòu yuán sù zhī shàng de cāo zuò。 yī dàn zhè xiē cāo zuò xū yào xiū gǎi de huà, jiē shòu zhè gè cāo zuò de shù jù jié gòu kě yǐ bǎo chí bù biàn。 fǎng wèn zhě mó shì shì yòng yú shù jù jié gòu xiāng duì wèi dìng de xì tǒng, tā bǎ shù jù jié gòu hé zuò yòng yú jié gòu shàng de cāo zuò zhī jiān de 'ǒu hé jiě tuō kāi, shǐ dé cāo zuò jí hé kě yǐ xiāng duì zì yóu de yǎn huà。 fǎng wèn zhě mó shì shǐ dé zēng jiā xīn de cāo zuò biàn de hěn róng yì, jiù shì zēng jiā yī gè xīn de fǎng wèn zhě lèi。 fǎng wèn zhě mó shì jiāng yòu guān de xíng wéi jí zhōng dào yī gè fǎng wèn zhě duì xiàng zhōng, ér bù shì fēn sàn dào yī gè gè de jié diǎn lèi zhōng。 dāng shǐ yòng fǎng wèn zhě mó shì shí, yào jiāng jìn kě néng duō de duì xiàng liú lǎn luó ji fàng zài fǎng wèn zhě lèi zhōng, ér bù shì fàng dào tā de zǐ lèi zhōng。 fǎng wèn zhě mó shì kě yǐ kuà guò jǐ gè lèi de děng jí jié gòu fǎng wèn shǔ yú bù tóng de děng jí jié gòu de chéng yuán lèi。
tú shū《 shè jì mó shì : jī yú C# de gōng chéng huà shí xiàn jí kuò zhǎn》 zuò zhě: wáng xiáng zhù
chū bǎn shè: diàn zǐ gōng yè chū bǎn shè
chū bǎn shí jiān: 2009-1-1
zì shù: 850000
bǎn cì: 1
yè shù: 652
kāi běn: 16 kāi
yìn cì: 1
zhǐ zhāng: jiāo bǎn zhǐ
ISBN: 9787121075070
bāo zhuāng: píng zhuāng
suǒ shǔ fēn lèi: tú shū >> jì suàn jī / wǎng luò >> chéng xù shè jì >>CC++C#VCVC++
dìng jià: ¥ 98.00
biān ji tuī jiàn
zhuān jiā tuī jiàn
běn shū lì yì míng què, chú liǎo gào sù nǐ wèn tí de lèi xíng yǔ jiě fǎ, hái tí gōng liǎo kě yǐ lì jí yǎn yì de chéng xù dài mǎ, xiāng xìn zhè běn 'àn tóu de gōng jù shū kě yǐ tí gōng nǐ yī gè bù cuò de sī wéi mó shì, bāng nǐ zào jiù yòu tánxìng、 néng kuò chōng、 yì wéi hù de ruǎn jiàn shí tǐ。
hú bǎi jìng wēi ruǎn MVP, tái wān héng yì zī xùn zī shēn jiǎng shī,“ shù jù kù tiě rén”
zuò zhě cóng GOF23 zhǒng jīng diǎn shè jì mó shì kāi shǐ, dài nǐ zǒu jìn mó shì de shī mén, xiǎo dào xì lì dù de jī chǔ mó shì, dà dào cū lì dù de jià gòu mó shì, běn shū dū zuò liǎo xiáng jìn de jiǎng jiě。 rú guǒ nín hái zài wèile ruǎn jiàn xū qiú de wú jìn biàn huà 'ér fán nǎo bù duàn, wèile zài ruǎn jiàn shè jì lǐng yù gèng shàng yī céng lóu 'ér kǔ kǔ sī suǒ, xī wàng běn shū néng gòu dài gěi nín yī xiē qǐ fā。
lǐ huì jūn wēi ruǎn MVP, bó kè yuán zhuān jiā, IT168 zhuān lán zuò zhě
běn shū hěn yòu tè sè de dì fāng, jiù shì yǐ gōng chéng jiǎo dù lái chǎn shì mó shì, xiāng jiào chún cuì de mó shì zhī shuō, zé gèng jù pǔ biàn de xià shǒu jiǎo dù, C ≠ yǔ yán de gāo jí tè xìng jié hé shè jì mó shì de jīng diǎn sī xiǎng, liǎng zhě xiāng dé yì zhāng。
wáng tāo wēi ruǎn MVP, bó kè yuán zhuān jiā,《 nǐ bì xū zhī dào de .NET》 zuò zhě
nèi róng jiǎn jiè
běn shū jī yú C#2.0 de yǔ fǎ, shì tú jiāng GOF23 zhōng de mó shì yǐ yī zhǒng kě gōng chéng huà de gōng gòng kù 'ér fēi Example de fāng shì chéng xiàn gěi dú zhě。 nèi róng bāo kuò yǐ xià 7 bù fēn。
dì 1 piān zhù yào shì gài kuò xìng de jiè shào; dì 2 piān chuàng jiàn xíng mó shì jiè shào tōng guò jiāng shí lì huà zhí zé wěi tuō tā fāng duì xiàng de bàn fǎ, gé lí kè hù chéng xù yǔ jù tǐ lèi xíng shí lì huà de yǐ lài guān xì, bǎo zhèng kè hù chéng xù( huò zhě wài bù xì tǒng) huò dé qī wàng jù tǐ lèi xíng shí lì de、 tóng shí bù bì fā shēng zhí jiē de yǐn yòng; dì 3 piān jié gòu xíng mó shì de zhòng diǎn zài yú rú hé tōng guò líng huó de tǐ xì zǔ zhì bù tóng de duì xiàng, bìng zài cǐ jī chǔ shàng wán chéng gèng wéi fù zá de lèi xíng( huò zhě lèi xíng xì tǒng), ér cānyù zǔ hé de gè lèi xíng zhī jiān shǐ zhōng bǎo chí jìn liàng sōng sàn de jié gòu guān xì; dì 4 piān xíng wéi xíng mó shì guān zhù yú yìng yòng yùn xíng guò chéng zhōng suàn fǎ de tí gōng hé tōng xìn guān xì de shū lǐ; dì 5 piān zhù yào jiè shào xiǎo kē lì dù jī chǔ mó shì hèyìng yòng 'àn lì; dì 6 piān zhù yào jiè shào yìng yòng quán jú de mó shì huà de shí xiàn fāng fǎ, bāo kuò xiàn zài yǐ jīng bèi pǔ biàn yìng yòng de N céng mó shì jí mǒu xiē guān jiàn xìng kuàng jià chǎn pǐn cǎi yòng de“ wēi nèi hé” mó shì; dì 7 piān zhù yào shì yī xiē zhēn duì Web hé WebService lǐng yù de mó shì shè jì jì shù。
běn shū zhù yào zhēn duì duì C# yǔ yán hé .NETFramework píng tái yòu yī dìng liǎo jiě huò yòu yī dìng yìng yòng jīng yàn de yòng hù, yóu qí shì yú nà xiē xī wàng yùn yòng mó shì jì shù zài shè jì hé kāi fā fāng miàn duō yìng duì xiē tiǎo zhàn de yòng hù。
zuò zhě jiǎn jiè
wáng xiáng, ruǎn jiàn jià gòu shī, zhù yào cóng shì .NET、 XML、 gōng yào jī chǔ shè shī de kāi fā。 zhuān zhù yú shù jù( yóu qí shì XML xìn xī) de shēng chǎn、 jiā gōng、 jiāo huàn、 tí liàn děng guò chéng。 zuì jìn cānyù liǎo yī xì liè yòu guān yìng yòng mì mǎ jì shù hé PKI huán jìng bǎo hù xìn xī xì tǒng shù jù 'ān quán de xiàng mù。
zuì xǐ huān shù xué, píng cháng 'àn tóu zǒng shì bǎi yī běn shù xué liàn xí tí。 xián xiá shí jiān xǐ huān xiě zuò, tōng guò fā biǎo duō zhǒng jì shù wén zhāng yǔ guó nèi wài tóng xíng jiāo liú gè zhǒng shù jù yìng yòng jīng yàn。
xiàng mù jiànxì jīng cháng dào gè hǎi bīn chéng shì tú bù lǚ xíng、 yě wài lù yíng、 chū hǎi háng xíng、 jí xiàn yùn dòng, zhè jǐ nián pēng rèn yě jiàn jiàn chéng wéi gè rén zhù yào 'àihào。 |
|
- : design pattern
|
|
diàn zǐ | shù jù jié gòu yǔ suàn fǎ | ruǎn jiàn | wǎng luò | wǎng luò jiān kòng | xié yì fēn xī | jì suàn jī | hù lián wǎng | biān chéng | ruǎn jiàn gōng chéng | java | j2ee | sì rén zǔ | ruǎn jiàn kāi fā | Design | Pattern | ioc | kāi fā kuàng jià | fǎn zhuǎn kòng zhì | mó shì | kuàng jià | gèng duō jiēguǒ ... |
|
|
dà huà shè jì mó shì | yì xué shè jì mó shì | shè jì mó shì zhī chán | ruǎn jiàn shè jì mó shì | yuán xíng shè jì mó shì | tōng yòng shè jì mó shì | duō xiàn chéng shè jì mó shì | jīng tōng yǔ shè jì mó shì | shè jì mó shì ( yǐng yìn bǎn ) | wǎng zhàn jiāo hù shè jì mó shì | SymbianOS tōng yòng shè jì mó shì | JavaEE shè jì mó shì | 《 shè jì mó shì》 | jīng tōng CSS yǔ HTML shè jì mó shì | HeadFirst shè jì mó shì | Java shè jì mó shì | shí yòng ruǎn jiàn shè jì mó shì jiào chéng | JavaScript shè jì mó shì | C# shè jì mó shì ( yǐng yìn bǎn ) | shè jì mó shì jiě xī ( yǐng yìn bǎn ) | wǎng zhàn jiāo hù shè jì mó shì : dì 2 bǎn | ActionScript3.0 shè jì mó shì | J2EE xiàng mù shí xùn :UML jí shè jì mó shì | Ruby shè jì mó shì | C#3.0 shè jì mó shì | ActionScript3 shè jì mó shì | JAVA duō xiàn chéng shè jì mó shì | Ajax shè jì mó shì | xī yóu jì shè jì mó shì yǔ yìng yòng kāi fā | xiàng mù shí xùn jí shè jì mó shì | shè jì mó shì : kě fù yòng miàn xiàng duì xiàng ruǎn jiàn de jī chǔ | C++ shè jì mó shì - jī yú Qt4 kāi yuán kuà píng tái kāi fā kuàng jià | xī yóu jì、 shè jì mó shì yǔ IBMWebSpherePortal yìng yòng kāi fā | shè jì mó shì - jī yú kāi yuán kuà píng tái kāi fā kuàng jià | gāo jí chéng xù shè jì mó shì kuàng jià yǔ cè shì | |
|