保健励志美文体育育儿作文
投稿投诉
作文动态
热点娱乐
育儿情感
教程科技
体育养生
教案探索
美文旅游
财经日志
励志范文
论文时尚
保健游戏
护肤业界

Golang学习数据结构和算法中文版第5篇

  《LearnDataStructuresandAlgorithmswithGolang》作者:BhagvanKommadi
  门面(Facade)
  门面是用来抽象子系统接口的助手。门面模式用于解决接口数量不断增加且系统变得复杂的场景。门面是不同子系统的一个入口点,它简化了系统之间的依赖关系。门面模式提供一个隐藏了代码背后实现的细节接口。
  松散耦合原则可以通过门面模式来实现。你可以使用门面来改进设计不佳的API。在SOA里,一个服务门面可以合并对契约和实现的改变。
  门面模式由facade类,模块类和客户端组成:门面将来自客户端的请求委托给模块类。facade隐藏了子系统的逻辑和规则的复杂性。模块类实现模块子系统的行为和功能。客户端调用facade方法。facade类功能可以分布在多个包和程序集中。
  例如,账户,客户和交易都是具有账户,客户和交易创建方法的类。BranchManagerFacade类被客户端用来创建账户,客户和交易:mainpackagehasexamplesshowninHandsOnDataStructuresandalgorithmswithGobookpackagemainimportingfmtpackageimport(fmt)AccountstructtypeAccountstruct{idstringaccountTypestring}AccountclassmethodcreatecreatesaccountgivenAccountTypefunc(accountAccount)create(accountTypestring)Account{fmt。Println(accountcreationwithtype)account。accountTypeaccountTypereturnaccount}AccountclassmethodgetByIdgivenidstringfunc(accountAccount)getById(idstring)Account{fmt。Println(gettingaccountbyId)returnaccount}
  account类由deleteById方法,该方法用于删除带有给定ID的账户,如下面的代码所示:AccountclassmethoddeleteByIdgivenidstringfunc(accountAccount)deleteById(idstring)(){fmt。Println(deleteaccountbyid)}CustomerstructtypeCustomerstruct{namestringidint}
  在下面代码中,customer类有一个带name参数的创建新客户方法:CustomerclassmethodcreatecreateCustomergivennamefunc(customerCustomer)create(namestring)Customer{fmt。Println(creatingcustomer)customer。namenamereturncustomer}TransactionstructtypeTransactionstruct{idstringamountfloat32srcAccountIdstringdestAccountIdstring}
  正如以下代码所示,transaction类有一个create方法来创建一笔交易:TransactionclassmethodcreateTransactionfunc(transactionTransaction)create(srcAccountIdstring,destAccountIdstring,amountfloat32)Transaction{fmt。Println(creatingtransaction)transaction。srcAccountIdsrcAccountIdtransaction。destAccountIddestAccountIdtransaction。amountamountreturntransaction}BranchManagerFacadestructtypeBranchManagerFacadestruct{accountAccountcustomerCustomertransactionTransaction}methodNewBranchManagerFacadefuncNewBranchManagerFacade()BranchManagerFacade{returnBranchManagerFacade{Account{},Customer{},Transaction{}}}
  BranchManagerFacade类有createCustomerAccount方法,此方法调用customer实例的create方法,如下代码所示:BranchManagerFacadeclassmethodcreateCustomerAccountfunc(facadeBranchManagerFacade)createCustomerAccount(customerNamestring,accountTypestring)(Customer,Account){varcustomerfacade。customer。create(customerName)varaccountfacade。account。create(accountType)returncustomer,account}BranchManagerFacadeclassmethodcreateTransactionfunc(facadeBranchManagerFacade)createTransaction(srcAccountIdstring,destAccountIdstring,amountfloat32)Transaction{vartransactionfacade。transaction。create(srcAccountId,destAccountId,amount)returntransaction}
  main方法调用NewBranchManagerFacade方法创建一个门面实例,调用这个facade上的方法可以创建customer和account:mainmethodfuncmain(){varfacadeNewBranchManagerFacade()varcustomerCustomervaraccountAccountcustomer,accountfacade。createCustomerAccount(ThomasSmith,Savings)fmt。Println(customer。name)fmt。Println(account。accountType)vartransactionfacade。createTransaction(21456,87345,1000)fmt。Println(transaction。amount)}
  运行以下命令:gorunfacade。go
  让我们看看下一节的享元模式。
  上一篇:《Golang学习数据结构和算法》中文版第4篇

小草四年级优秀作文我不爱那五颜六色的鲜花,不爱那高大挺拔的大树,我最喜欢的,是那毫不起眼的小草。那是在暮春时节,不知什么时候,村子里掀起了一阵玩擦炮的潮流。好多小朋友都买了擦炮,在绿草坪上……2012暑期征文挑战与成功E度网专稿未经允许不得转载每一本好书,都能净化心灵,陶冶情操;即使在你最低潮时,它仍能陪你度过;更重要的是,它还能带给你许多人生哲理,或者让你重拾那些遗忘的岁月。我爱书,……关于我自己的作文400字我就是这样一个独一无二的人,每个人都是一样的。关于我自己的作文400字,我们来看看。【篇一:写自己的作文400字】我是一个活泼的小男孩,有了我,家里多了欢声笑语。记得有一……新学期打算作文100字新学期有新挑战,而我们也应该做好计划,积极面对挑战,小编为大家整理了以下作文,希望大家喜欢。新学期打算作文今天开学了,我来到学校,见到老师同学,很开心!这学期,我的……挫折,生命永恒的美丽品学网专稿未经允许不得转载静静的坐在窗前,细细的聆听噼噼啪啪的水声。遥望窗外,那烟雨朦胧的世界。目光瞬间停滞,一朵盛开在暴风雨中的小花。任凭狂风吹暴雨打,毅然的挺起了娇嫩……写给天堂上的妈妈一封信亲爱的妈妈您好!妈妈,您离开女儿整整七个年头了,可您的身影时常会出现在我的梦里,真真切切,不过全是您年青时的样子。扎着两条粗辫子,脸上没有一条皱纹。女儿知道这是您在……冬雪,南方的雪作文冬雪,南方的雪作文1南方的冬天不像北方的冬天那样寒冷,南方的雪来的也不如北方的猛烈。南方的雪是纷纷扬扬的,星星点点的落下,又时常夹杂着些雨水。飘到地上,便随雨水一起化开了……恒玄科技2022年第一季度净利2249。93万同比下滑71。挖贝网5月3日,恒玄科技(688608)发布2022年第一季度报告,报告期内公司实现营业收入287,198,721。68元,同比下滑1。18;归属于上市公司股东的净利润22,4……将创新进行到底人生中往往有一些总是墨守成规的人,他们不懂变通,只是一味坚持一些传统的做法,喜欢按照套路出牌,成为社会中被僵化的人。将创新进行到底。《乌鸦喝水》的故事我们早已滥熟于心我们……谷歌如果当年不开源AOSP,中国的手机行业会怎么样?谷歌如果不开源。那他活不到现在,苹果,微软,都不是弱手。何况还有别家。那现在肯定是鸿蒙的天下,鸿蒙在手,天下我有安卓本身并不是谷歌的,是后面有一个创业团……切转转游戏日记今天我和另外两个同学一起玩切转转的游戏。规则是:以黑白配的型式来决定谁当切的人。他要双手伸直,一直旋转,要绕着整个走廊转,要是切到别人,那个人就要当切的人。游戏开始了:小……用眼睛发现自己作文眼睛能看见所有的东西,但看不见自己。于是我们开始学会以别人的眼睛中发现自己,了解自己。别人之所以看你,是因为他渴望读出你眼中的自己。一个人,若是穿了一件光鲜华丽的一……
云集成立四年赴美上市,营收赶超拼多多,去年平均客单价近千元营收130亿元云集创始人肖尚略原本是淘宝香水卖家,2003年,淘宝还在起步期,肖尚略就开了小也店,业内也管肖尚略叫小也。到2012年,小也香水以12的市场份额,成为淘宝香……德媒华为在海外展开形象攻势在欧再设安全中心德国之声电台网站3月23日发表文章称,华为主动邀请客户检查源代码,积极展现对产品的透明性与安全性的重视。文章称,在车水马龙的布鲁塞尔市中心,3月初刚刚开张的华为网络安全透……皆大欢喜,瑞萨67亿美元拿下IDTRenesas本月23日宣布,与包括传感器、互联和无线电源在内的模拟混合信号产品领先供应商IDT已经收到美国外资投资委员会(CFIUS)的通知。通知称对两家公司拟议的并购交易调……一周全球十大并购(3。183。24)据晨哨并购统计,本周全球公开披露的、处于不同状态的海外股权并购交易事件共有60余笔。从标的所属行业来看,TMT、制造业、农业食品、能源矿产、医疗健康、消费品、金融、文化娱乐、服……美丽福建,我的梦梦,如一座长桥,另外一端是成功,当梦想之翼展开,便乘风翱翔,我的梦想是:让福建更美丽。青春之梦mdash;mdash;成长的力量。小时候,我经常随便扔垃圾,不知道乱……新版Edge很强Chrome可以不用下载了Edge浏览器曾经被微软视为Windows10的大杀器,不过从目前的情况来看,Edge浏览器很难扛此大任。现在大家都知道了,微软将会放弃如今Edge浏览器的内核,转为采用Chr……国家队联合阿里出手,网约车变局再起风云衣、食、住、行涵盖了大部分的生活内容,共享出行解决的就是出行问题,可见有着巨大的市场规模。几年来共享出行领域滴滴一家独大,虽然有美团、曹操的挑战,后者也只是分得了一杯羹,滴滴还……400字作文钓鱼的启示8篇【篇一:钓鱼的启示】我是一个非常喜欢钓鱼的孩子,每到放假或写完作业后。我就提着个小桶随着爸爸一起去钓鱼了。星期六,我和往常一样,在池塘边的空地上坐下,挂上鱼饵,便开……难忘的第一次人人都有第一次,我也不例外。而我的第一次在记忆的大门里,你先别着急,我这就拿出记忆钥匙,来为你讲述我的第一次吧。那是1年前的一个月黑风高的夜晚,我写完作业正准备睡觉,但是……可装插件,功能齐全,微软Chromium内核浏览器出来了!早在去年年底,国外媒体就报道微软正在开发基于Chromium内核的微软边缘浏览器,微软随后证实了这一点。新的边缘浏览器日将作为Windows10的内置浏览器发布。几天前,……36氪首发e成科技完成8000万美元C轮融资,人力资本数字化36氪独家获悉,企业人才管理解决方案提供商e成科技已完成8000万美元C轮融资。此轮融资由光速美国基金(LSVP)和阳光保险领投,老股东光速中国基金、凯辉创新基金和Schrod……人品重于学识六年级作文这几天,班里一位同学经常上课和老师起冲突,和老师反着来。虽然他成绩很棒,但是班里同学和老师却不喜欢他的做法。我和妈妈讲起这件事时,妈妈和我讲了她的一个小学同学的事情。妈妈……
友情链接:易事利快生活快传网聚热点七猫云快好知快百科中准网快好找文好找中准网快软网