扫码阅读
手机扫码阅读
【Swift】面向协议编程的实例
![](/theme/default/default/images/main/eye-open.png)
我们非常重视原创文章,为尊重知识产权并避免潜在的版权问题,我们在此提供文章的摘要供您初步了解。如果您想要查阅更为详尽的内容,访问作者的公众号页面获取完整文章。
![](/theme/default/default/images/main/icon-link.png)
![](/theme/default/default/images/main/icon-jing.png)
程序员华仔
扫码关注公众号
面向协议编程体会摘要
本文作者通过参与一个基于面向协议编程的项目后,总结了对面向协议编程的深刻认识并记录下来。
需求
项目需求是对动物园中的不同动物进行系统化管理,其中包括入库已有动物(猫、老鹰、鲨鱼)以及后续新加入的动物(海豚、鸵鸟、金鱼),并要求按类目对新动物进行分类处理。
面向对象编程实现
最初,作者使用面向对象编程方式实现了动物管理系统。创建了一个基类Animal,然后对不同的动物实现了继承和方法重写,新动物则通过新增类目进行管理。但是这种实现方式存在代码冗余、重复、子类过多和扩展性不佳的问题。
面向协议编程实现
为了优化代码,作者尝试了面向协议编程方式。定义了一个AnimalProtocol协议和其他能力相关的协议,比如Runable、Flyable和Swimmingable,动物类实现了相应的协议。这种方式确实带来了代码量减少、支持多重继承、协议可选性和更好的扩展性等优点。
总结
面向协议编程相较于面向对象编程,在代码管理和扩展性方面表现出更多优势,遵循了开闭原则,并减少了不必要的代码实现。
END
想要了解更多内容?
![](/theme/default/default/images/main/icon-link.png)
![](/theme/default/default/images/main/icon-jing.png)
程序员华仔
扫码关注公众号
程序员华仔的其他文章
加入社区微信群
与行业大咖零距离交流学习
![](https://cdn.easycorp.cn/rongpm/upload/202312/f_39217d624bb2b42ce8f6322ebd7e573a.png)
![](https://cdn.easycorp.cn/rongpm/upload/202312/f_39217d624bb2b42ce8f6322ebd7e573a.png)
软件研发质量管理体系建设
白皮书上线