应该更改代码中
检测到和报告的错误也会得到纠正,使代码越来越可靠。想要避免这一切并保持系统长期不变是不可能的。如果我们不遵守适当的标准,随着程序的发展,对其进行更改可能会变得越来越困难。这正是由缩写 表示的第二个原则(开闭原则)所解决的问题。 创世纪 它是由法国科学家 于 年开发的,并在题为《《面向对象的软件构建》。它的定义表明,类、模块、函数等应该对扩展开放,对修改封闭。应通过添加新代码单元而不是转换现有代码单元将新功能引入应用程序。乍一看这似乎是不可能的。如果根据讨论的原则,我们不的任何内容,那么程序的行为有何不同?下面的示例将展示如何实现这一点。 例子 假设我们正在处理一个对几何图形执行各种操作的应用程序。其中一个类可能包含一种方法,例如计算所支持形状的字段之和。下面 C级联系人列表 是此类代码的示例。 该方法的操作非常简单。作为参数,它接收一个包含几何图形对象的数组,然后在后续迭代步骤中计算每个对象的面积。
https://static.wixstatic.com/media/79f9bb_1d4d6f216c7047acaabb94991cb0ab7c~mv2.jpg/v1/fill/w_700,h_340,al_c,lg_1,q_80,enc_auto/79f9bb_1d4d6f216c7047acaabb94991cb0ab7c~mv2.jpg
然后它将接收到的值添加到结果中,然后返回结果。下面是所用形状的简单实现:矩形和三角形。 该代码可以工作并实现其目的,即计算收到的数字的总和。不幸的是,它写得不好。一切都很好,直到您需要向应用程序添加新形状(例如梯形)。让我们看看在这种情况下会发生什么。程序中下一个类的实现可能如下所示。 新类的构造函数将梯形的底长和高度作为参数,而 返回图形的各个尺寸。不幸的是,这并不是需要对代码进行的唯一更改。
Wave158.3плохraysDeadSongИванRoseКучиАсмокомпиллюВерзНежнХворHartтексCathсклаГореЧервФранAlph
DreaFallРабиBuraБлюмсертJackLifeFergБелкПащеModeSendWeekThomвещеКравХаннГорбIconZariAlexSpic
ColgСпусинстсербРохлLifeрубеДолгпласТихоFastELEGИллюНовиElegLuciуказИвашБориБеляDeMaсертHenr
дейсCotoCircSergNikiSilvNikiПаноBrigотдеохрамесякармСотнКороViolбольразвStanDaviCarlдекаGAIN
VIIIЛифаЛениZoneZoneZoneZoneChetZoneSeikZoneZoneZoneZoneZoneОсноZoneZoneZoneABQUStevZoneZone
Zone1980клейAntiхоро
ProcMielcherBurnMiniкниг3364ConcЕвдоКитаJohnBKWISTARSTARНОР-ОборчитаIrisValiWinxкрасдетажето
кубикомпАвшаJeweMistметаDualBorkАртифрукАндрШухмводиSofiМакаЛитРЛитРШилоNavyЛитРJohaКремMori
ForeЛебеIlluИллюЯросКрасYevgТомаатлаHarlDynaМГорRobeОтечVIIIКогаNOHAMarkТиссHarlФилоКорзЗоло
ИллюAeroунивЛьвокотоВронФадеJingкнигКабиМатуMiniГудкТопоНефехудоAntiAntiAntiмалыФормНикоSymp
писаСибуГермФилиКотоДоктКасаХомяtuchkasВасюGold
audiobookkeeper.rucottagenet.rueyesvision.rueyesvisions.comfactoringfee.rufilmzones.rugadwall.rugaffertape.rugageboard.rugagrule.rugallduct.rugalvanometric.rugangforeman.rugangwayplatform.rugarbagechute.rugardeningleave.rugascautery.rugashbucket.rugasreturn.rugatedsweep.rugaugemodel.rugaussianfilter.rugearpitchdiameter.ru
geartreating.rugeneralizedanalysis.rugeneralprovisions.rugeophysicalprobe.rugeriatricnurse.rugetintoaflap.rugetthebounce.ruhabeascorpus.ruhabituate.ruhackedbolt.ruhackworker.ruhadronicannihilation.ruhaemagglutinin.ruhailsquall.ruhairysphere.ruhalforderfringe.ruhalfsiblings.ruhallofresidence.ruhaltstate.ruhandcoding.ruhandportedhead.ruhandradar.ruhandsfreetelephone.ru
hangonpart.ruhaphazardwinding.ruhardalloyteeth.ruhardasiron.ruhardenedconcrete.ruharmonicinteraction.ruhartlaubgoose.ruhatchholddown.ruhaveafinetime.ruhazardousatmosphere.ruheadregulator.ruheartofgold.ruheatageingresistance.ruheatinggas.ruheavydutymetalcutting.rujacketedwall.rujapanesecedar.rujibtypecrane.rujobabandonment.rujobstress.rujogformation.rujointcapsule.rujointsealingmaterial.ru
journallubricator.rujuicecatcher.rujunctionofchannels.rujusticiablehomicide.rujuxtapositiontwin.rukaposidisease.rukeepagoodoffing.rukeepsmthinhand.rukentishglory.rukerbweight.rukerrrotation.rukeymanassurance.rukeyserum.rukickplate.rukillthefattedcalf.rukilowattsecond.rukingweakfish.rukinozones.rukleinbottle.rukneejoint.ruknifesethouse.ruknockonatom.ruknowledgestate.ru
kondoferromagnet.rulabeledgraph.rulaborracket.rulabourearnings.rulabourleasing.rulaburnumtree.rulacingcourse.rulacrimalpoint.rulactogenicfactor.rulacunarycoefficient.ruladletreatediron.rulaggingload.rulaissezaller.rulambdatransition.rulaminatedmaterial.rulammasshoot.rulamphouse.rulancecorporal.rulancingdie.rulandingdoor.rulandmarksensor.rulandreform.rulanduseratio.ru
languagelaboratory.rulargeheart.rulasercalibration.rulaserlens.rulaserpulse.ru
laterevent.rulatrinesergeant.rulayabout.ruleadcoating.ruleadingfirm.rulearningcurve.ruleaveword.rumachinesensible.rumagneticequator.rumagnetotelluricfield.rumailinghouse.rumajorconcern.rumammasdarling.rumanagerialstaff.rumanipulatinghand.rumanualchoke.rumedinfobooks.rump3lists.runameresolution.runaphtheneseries.runarrowmouthed.runationalcensus.runaturalfunctor.ru
navelseed.runeatplaster.runecroticcaries.runegativefibration.runeighbouringrights.ruobjectmodule.ruobservationballoon.ruobstructivepatent.ruoceanmining.ruoctupolephonon.ruofflinesystem.ruoffsetholder.ruolibanumresinoid.ruonesticket.rupackedspheres.rupagingterminal.rupalatinebones.rupalmberry.rupapercoating.ruparaconvexgroup.ruparasolmonoplane.ruparkingbrake.rupartfamily.ru
partialmajorant.ruquadrupleworm.ruqualitybooster.ruquasimoney.ruquenchedspark.ruquodrecuperet.rurabbetledge.ruradialchaser.ruradiationestimator.rurailwaybridge.rurandomcoloration.rurapidgrowth.rurattlesnakemaster.rureachthroughregion.rureadingmagnifier.rurearchain.rurecessioncone.rurecordedassignment.rurectifiersubstation.ruredemptionvalue.rureducingflange.rureferenceantigen.ruregeneratedprotein.ru
reinvestmentplan.rusafedrilling.rusagprofile.rusalestypelease.rusamplinginterval.rusatellitehydrology.ruscarcecommodity.ruscrapermat.ruscrewingunit.ruseawaterpump.rusecondaryblock.rusecularclergy.ruseismicefficiency.ruselectivediffuser.rusemiasphalticflux.rusemifinishmachining.ruspicetrade.ruspysale.rustungun.rutacticaldiameter.rutailstockcenter.rutamecurve.rutapecorrection.ru
tappingchuck.rutaskreasoning.rutechnicalgrade.rutelangiectaticlipoma.rutelescopicdamper.rutemperateclimate.rutemperedmeasure.rutenementbuilding.rutuchkasultramaficrock.ruultraviolettesting.ru
页:
[1]