当前位置: 首页 > 后端技术 > PHP

PHP设计模式之适配器模式(Adapter)代码示例合集(十)

时间:2023-03-30 01:40:54 PHP

目的将某个类的接口转换为另一个接口,实现兼容性。适配器使由于接口不同而无法一起使用的类能够一起工作。适配器通过对原有接口的转换,为用户提供兼容的接口。Exampleclientdatabaseadapter使用多种不同的网络服务和adapter对数据进行标准化,使得结果是相同的UML图BAT等一线大厂已经具备进阶知识体系(相关学习资料和笔试面试题)且不限于:分布式架构、高扩展、高性能、高并发、服务器性能调优、TP6、laravel、YII2、Redis、Swoole、Swoft、Kafka、Mysql优化、shell脚本、Docker、微服务、Nginx等知识点高级进阶干货代码BookInterface.phppage=1;}publicfunctionturnPage(){$this->page++;}publicfunctiongetPage():int{return$this->page;}}EBookAdapter.phpeBook=$eBook;}/***此类使接口进行适当的转换。*/publicfunctionopen(){$this->eBook->unlock();}publicfunctionturnPage(){$this->eBook->pressNext();}/***注意这个适配器的行为:EBookInterface::getPage()将返回两个整数,除了BookInterface*只支持获取当前页面,所以我们在这里调整这个行为*@returnint*/publicfunctiongetPage():int{return$this->eBook->getPage()[0];}}EBookInterface.phppage++;}publicfunctionunlock(){}/***返回当前页数和总页数,如[10,100]是总页数第100页的第10页。**@returnint[]*/publicfunctiongetPage():array{return[$this->page,$this->totalPages];}}Tests/AdapterTest.phpopen();$book->turnPage();$this->assertEquals(2,$book->getPage());}publicfunctiontestCanTurnPageOnKindleLikeInANormalBook(){$kindle=newKindle();$book=newEBookAdapter($kindle);$book->open();$book->turnPage();$this->assertEquals(2,$book->getPage());}}PHP互联网架构师成长之路*《设计模式》终极指南PHP互联网架构师50K成长指南+行业解题大纲(持续更新中)面试10家公司,收获9个offer,2020年PHP面试题如果喜欢我的文章,如果你想和更多的资深开发者交流学习,获得更多各大厂商面试相关的技术咨询和指导,欢迎加入我们的群,密码:phpzh(群号856460874)2020年最新PHP进阶教程,全系列!如果内容不错,希望大家多多支持鼓励点赞/点赞,欢迎一起交流;另外,大家有什么问题、建议和想看的内容都可以在评论里提出