飞天发布时刻:2024年 Forrester 公有云平台Wave™评估报告解读 了解详情
写点什么

OOP 更适合组织你的代码么?

  • 2008-12-09
  • 本文字数:714 字

    阅读完需:约 2 分钟

功能强劲且灵活性高的编程语言最近在不断获得动力。然而 Johnatan Tang 就程序结构问题提出了灵活性和生产力的折衷,这是因为传统的面向对象使得程序的编写更加简单且直接

他说在单分支语言中,“给你一个参数或其他值,你就能明确知道可以用它来做什么”。然而在静态类型语言中,代码更能说明与之相关的值,在结构化类型语言中更是如此,对于一个给定的值,你马上就知道能在其上执行何种操作。对于静态和结构化类型语言来说,如果你想对一个给定的对象执行某个不被支持的操作,很明显就能看出来:

你编写一个方法来执行这个操作。如果你没有管理好那个类就会出问题,这正是 Ruby 和 C#转到开放类上的原因所在。 很明显我们知道应该在何处定义该方法:在你需要操纵的类上。

在多分支语言中,于何处编写方法以及“新的方法要接收哪些参数值”就不是那么明显的了。这在代码编写上提供了更大的灵活性但也意味着你要做出更多的决定并需要花费些精力来记住这些决定:

接下来当别人每次使用该方法时,他们都需要记住它定义在什么地方并增加适当的导入语句。如果他们忘了,就会遇到无法预料的行为,因为系统并未加载完成某个功能的适当的方法。

建立约定可以解决这个问题。然而 Tang 认为“如果语言不对约定进行强制限定,人们就不会遵守它”。他在尝试了为模块的排列定义一些模式后断言“这是特定领域所固有的问题:没有哪一个恰当的组织原则可以适合于所有人的程序”。

因此根据Johnatan Tang 所述,在程序的组织上并没有明显的解决方案能达到灵活性和生产力的折衷。你喜爱的语言怎么样呢?你能找到什么解决方案?让大家也一同分享你的经验吧,这两者之间有没有比较方便的折衷方案呢?

查看英文原文: Is OOP Better for Structuring your Code?

2008-12-09 10:54636
用户头像

发布了 88 篇内容, 共 265.9 次阅读, 收获喜欢 8 次。

关注

评论

发布
暂无评论
发现更多内容

智慧公安大数据可视化分析系统搭建

t13823115967

智慧公安二维码定位报警系统开发

t13823115967

架构师训练营第十周学习笔记

一马行千里

学习 极客大学架构师训练营

第六周-总结

jizhi7

极客大学架构师训练营

第六周-作业

jizhi7

Appium上下文和H5测试(二)

清菡软件测试

第 06 周学习总结

Airship

极客大学架构师训练营

成千上万个站点,日数据过亿的大规模爬虫是怎么实现的?

穿甲兵

Python redis 爬虫

2020双11,Dubbo3.0 在考拉的超大规模实践

阿里巴巴云原生

阿里云 开源 云原生 dubbo

week6-学习总结

未来已来

40 张图带你搞懂 TCP 和 UDP

苹果看辽宁体育

计算机网络 计算机基础 计算机

极客时间架构 1 期:第 10 周 模块分解 - 学习总结

Null

极客时间架构 1 期:第 10 周 模块分解 - 命题作业

Null

第06周 CAP 原理

Airship

极客大学架构师训练营

第四代Express框架koa简介

程序那些事

nodejs 异步编程 koa Express 程序那些事

shell脚本的使用该熟练起来了,你说呢?(篇一)

良知犹存

Linux shell脚本编写

解密智联招聘的大前端架构Ada

智联大前端

Serverless 大前端 开发工具

架构师训练营第十一周作业

Geek_4c1353

极客大学架构师训练营

第10周作业

paul

云算力矿机系统开发,区块链挖矿平台搭建

薇電13242772558

区块链 云算力

除了梦里什么都有之外,我想可以让现实生活中也可以有点什么。

叶小鍵

日本 健康 川村昌嗣 瘦身 走路 运动

我是如何使计算时间提速25.6倍的

白日梦想家

Python 代码优化 Numpy 代码加速

week6-命题作业

未来已来

Effective go 笔记-01

邵俊达

Effective-go Go 语言

CAP原理

如何高效的使用并行流

Silently9527

java8 java 并发

架构师训练营第 1 期第 10 周作业

owl

极客大学架构师训练营

第十周学习总结

solike

架构师训练营第十周命题作业

一马行千里

极客大学架构师训练营 命题作业

腾讯云轻量应用服务器 SSH 配置

邵俊达

SSH 轻服务器

Python进阶——如何正确使用yield?

Kaito

Python

OOP更适合组织你的代码么?_编程语言_Sadek Drobi_InfoQ精选文章