写点什么

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

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

    阅读完需:约 2 分钟

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

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

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

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

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

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

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

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

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

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

关注

评论

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

软件测试/测试开发 | 如何模拟真实使用场景?mock 技术来帮你

测试人

软件测试 自动化测试 接口测试 测试开发 Mock

喜讯!云起无垠获评“2022中国科创好公司”

云起无垠

网络安全 Fuzzing 2022中国科创好公司

打造数字海南,中国电信天翼云赋能海南自贸港智慧发展!

天翼云开发者社区

Disney 流媒体广告 Flink 的应用实践

Apache Flink

大数据 flink 实时计算

FL Studio2024中文版水果电音舞曲制作软件

茶色酒

FL Studio21 FL Studio2024

《编程的原则》读书笔记(四):七个设计原则

Chares

软件工程 软件开发 编程原理 软件开发原则

响应式流的核心机制——背压机制

老周聊架构

响应式编程

在农业银行做开发是什么样的体验?

程序员大彬

Java 开发

1分钟带你学会MySQL覆盖索引,让你的SQL更高效

程序员拾山

MySQL 索引 覆盖索引

玩转云端| 天翼云数据加密,护航企业数据安全

天翼云开发者社区

数据湖(二十):Flink兼容Iceberg目前不足和Iceberg与Hudi对比

Lansonli

数据湖

BI 可视化工具不只有视图,还有报表

搞大屏的小北

数据可视化工具 DataEase

华为运动健康服务Health Kit 6.9.0版本新增功能揭秘!

HarmonyOS SDK

HMS Core

软件测试/测试开发丨接口测试经典面试题:Session、cookie、token有什么区别?

测试人

软件测试 自动化测试 接口测试 测试开发

web 3d的开发技术方案选型

好孩子

web3d

dcm4che 解析 修改 保存 dicom文件

JefferLiu

重磅!持续应用安全(CAS)白皮书发布,云起无垠入选

云起无垠

Fuzzing CAS白皮书

头号玩家!天翼云蝉联专属云服务市场榜首

天翼云开发者社区

数据湖(十九):SQL API 读取Kafka数据实时写入Iceberg表

Lansonli

数据湖

架构实战营 - 模块 4- 作业

zealot0317

[原生1v1视频源码]社交市场趋于饱和,出海成为1v1语聊平台的新选择

山东布谷科技胡月

社交APP出海 视频社交APP开发 1v1交友app开发 一对一视频语音系统搭建

CAP定理

threedayman

分布式 架构设计 java; 基础

云上的米开朗基罗:在不确定时代,寻找建筑般的确定性

脑极体

我的2022

劼哥stone

2022年终总结

工信部电子标准院授予阿里巴巴9个开源项目“优秀”评级

云布道师

阿里云

天翼云位居中国私有云市场领导者象限

天翼云开发者社区

用无线控制LED显示屏的10个特点

Dylan

LED显示屏 全彩LED显示屏 led显示屏厂家

MYSQL数据库主从配置

Jackey

MySQL 数据库

软件测试/测试开发 | 服务端接口自动化测试, Requests 库的这些功能你了解吗?

测试人

软件测试 自动化测试 接口测试 测试开发 requests

Date & Time组件(下)

芯动大师

datepicker timepicker calendarview

ElasticSearch必知必会-进阶篇

京东科技开发者

ES 集群 索引技术 Elastic Search 企业号 1 月 PK 榜

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