报名参加CloudWeGo黑客松,奖金直推双丰收! 了解详情
写点什么

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

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

    阅读完需:约 2 分钟

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

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

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

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

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

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

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

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

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

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

关注

评论

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

飞桨EasyDL月刊:4月功能全新升级,模型训练步骤缩短63%

飞桨PaddlePaddle

飞桨 EasyDL

创建各种类型的3D模型:Rhino 7中文激活版

真大的脸盆

Mac Mac 软件 三维建模 建模软件 3d建模

openEuler 成功适配 LeapFive InFive Poros 开发板

openEuler

Linux 操作系统 openEuler 开发板 risc-v

行业实践专栏上线|互娱领域专家解读 Flink 企业应用实践

Apache Flink

大数据 flink 实时计算

明道云开放日上海站开启报名

明道云

MySQL的varchar存储原理:InnoDB记录存储结构

华为云开发者联盟

数据库 后端 华为云 华为云开发者联盟 企业号 5 月 PK 榜

山东移动:全业务域核心系统升级,实现大幅降本增效

OceanBase 数据库

数据库 oceanbase

低代码开发平台 重塑数字医疗生产力

力软低代码开发平台

软件测试 | 安装PyMySQL

测吧(北京)科技有限公司

YMatrix 5.0 故障自动转移功能新实现,运维更方便!

YMatrix 超融合数据库

数据库 时序数据库 超融合数据库 YMatrix

IPv6 无状态地址如何自动配置?

天翼云开发者社区

IP 网络

AI低代码,或将再次颠覆开发行业

引迈信息

低代码 AIGC JNPF AI低代码

软件测试 | SQLite管理工具

测吧(北京)科技有限公司

测试

一图看懂一体化数据安全平台 uDSP

原点安全

数据治理 数据安全 数据安全法 信息泄露 个人信息安全

声网自研编码器 a264 & a265:更优画质更低能耗,进一步适配实时互动场景需求

声网

共铸国云 智领未来 | 化云为雨 泽被万物

天翼云开发者社区

云计算 网络

软件测试 | 配置MySQL

测吧(北京)科技有限公司

测试

NUMA架构介绍及优缺点分析

天翼云开发者社区

架构设计 NUMA

专访高雪峰:从GPT3.5到4,超强推理能力的实现与“图”密不可分 | 36氪专访

Fabarta

人工智能 AI 图计算 图智能

华为数据中心产业论坛 | 打造低碳、绿色数据中心,构建新型数字产业能源基础设施

极客天地

如何简单快捷的使用上ChatGPT?

Ricky

人工智能 openai ChatGPT

一周狂赚50万,GPT-4帮你在线“脱单”,AI女友按分钟收费,男友高达数量1000+

加入高科技仿生人

人工智能 AI 低代码 ChatGPT GPT-4

20 分钟搭建互动教室,实现多人实时互动白板协作丨RTE 开发实战课 • 第三期

声网

浅谈TCP、UDP、ICMP三种常见协议

天翼云开发者社区

网络传输协议

分库分表的 21 条法则,hold 住!

小小怪下士

Java MySQL 程序员 分库分表

一文看懂THD布局要求

华秋PCB

PCB 布局 PCB设计 布线 波峰焊

Amazon EKS 上有状态服务启用存储加密

亚马逊云科技 (Amazon Web Services)

亚马逊云科技

VictoriaMetrics常见性能问题排查

天翼云开发者社区

vm 架构设计

4 月 NFT 月报: 在动荡的 NFT 市场中寻求生存

Footprint Analytics

区块链游戏 NFT 链游

共享电动车制造的厂家有哪些?要注意什么

共享电单车厂家

共享电动车厂家 共享电单车生产 共享电动车制造 本铯电动车厂家

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