静态语言、动态语言和设计模式

本文分析了在静态语言如Java中设计模式广泛应用的原因,而在动态语言如Python中设计模式的使用为何减少。静态语言通过接口和抽象提高灵活性,而动态语言依靠动态性实现相同目的。尽管动态语言可以通过单元测试确保代码质量,但静态语言的显式接口在理解和扩展性上有优势。动态语言并非不需要设计模式,而是实现方式不同。设计模式是根据需求而生,过度设计会增加复杂性。优秀的程序员应权衡利弊,选择合适的设计策略。
摘要由CSDN通过智能技术生成

在静态语言比如Java中被人熟知的21种设计模式可以谓大名鼎鼎,而为什么到了动态语言比如Python中设计模式不再突出,这篇文章讲进行分析

在静态语言中为了不让代码写死,为可能的变化预留灵活性,从而很多模式都利用接口,高层代码面向抽象编程,只有当实际运行的时候代码高层代码才执行实例化的具体对象的方法,而在动态语言中语言本身就具有动态性,于是不再需要显式的接口

静态语言(Java) 动态语言(Python)
优点:由于显式面向接口,于是在IDE中可以跳转到特定的接口,然后通过接口又可以找到实现这个接口的某些类,建立代码的联系更方便直观 优点:省事,不需要显式专门写个接口。方便的高级数据结构list,dict,set,方便构造json
缺点:费事,需要更多的代码,类型声明,显示接口定义。没有方便的list,dict,set,构造json显得臃肿,不自然 缺点:只有当代码实际运行的时候在知道某个变量到底是什么,于是对某个方法,或者某个类在没运行的情况下不容易理解
  • 也许有人觉得面对复杂的代码我们情愿多写一点东西,让代码更加方便理解,这确实不错,那么动态语言是否真的写不出强壮并且方便理解的代码呢?
    实际情况并不是这样,通过足够的单元测试和模拟测试,针对每个类或者方法有对应的单元测试,需要理解代码&#x

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值