写点什么

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

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

    阅读完需:约 2 分钟

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

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

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

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

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

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

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

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

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

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

关注

评论

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

轻松上手Fluentd,结合 Rainbond 插件市场,日志收集更快捷

北京好雨科技有限公司

Kubernetes EFK Fluentd rainbond

加密市场进入寒冬,是“天灾”还是“人祸”?

股市老人

加密市场进入寒冬,是“天灾”还是“人祸”?

鳄鱼视界

Development status of full color LED display

Dylan

LED display full-color LED display Outdoor LED display

入驻快讯|欢迎极狐GitLab 正式入驻 InfoQ 写作社区!

极狐GitLab

gitlab git 学习 #GitLab DevOps工具

定金预售的规则思路详解

CRMEB

MongoDB在腾讯零售优码中的应用

杨亚洲(专注MongoDB及高性能中间件)

mongodb 分布式数据库mongodb 构架 NoSQL 数据库 数据库·

畅享高性能计算!天翼云HPC解决方案来了

天翼云开发者社区

安全信得过!天翼云数据安全管理平台通过评测

天翼云开发者社区

力扣每日一练之双指针2Day9

京与旧铺

6月月更

TDengine 连接器上线 Google Data Studio 应用商店

TDengine

tdengine 时序数据库 Google Data Studio

知识管理在业务中的价值如何体现

小炮

知识管理

天翼云探索云原生、边缘计算融合新思路

天翼云开发者社区

新版负载均衡WebClient CRUD

Damon

微服务架构 微服务框架 6月月更

"不敢去怀疑代码,又不得不怀疑代码"记一次网络请求超时分析

华为云开发者联盟

前端 开发 HTTP 华为云

ironSource Luna 推出苹果搜索广告限时优惠,注册即享3个月免费服务

科技热闻

10款超牛Vim插件,爱不释手了

Jackpop

R 和 Python用于统计学分析,哪个更好?

Jackpop

web前端开发培训 | React面向组件编程

@零度

前端开发 React

假如,程序员面试的时候说真话

AlwaysBeta

程序员 面试

直播出海 | 国内直播间再出爆品,「外卷」全球如何致胜

融云 RongCloud

网络安全的五大特点有哪些?五大属性是什么?

行云管家

网络安全 数据安全 网络安全法

口令安全是什么意思?等保2.0政策中口令安全标准条款有哪些?

行云管家

网络安全 口令安全 等保 等保2.0 口令

天翼云数字政府智慧数据中台通过认证

天翼云开发者社区

6月《中国数据库行业分析报告》发布!智能风起,列存更生

墨天轮

数据库 TiDB 国产数据库 列式存储

删除视图——基于函数的视图 Django

海拥(haiyong.site)

Python django 6月月更

wallys/WiFi6 MiniPCIe Module 2T2R 2×2.4GHz 2x5GHz

wallys-wifi6

wifi6 mtk7915 mtk7975

多年亿级流量下的高并发经验总结,都毫无保留地写在了这本书中

博文视点Broadview

uni-app进阶之https请求方式/状态管理【day11】

恒山其若陋兮

6月月更

天翼云乘风新基建,构建数字化转型“4+2”能力体系

天翼云开发者社区

【Meetup 预告】RocketMQ OpenMLDB Connector,实时数据到特征工程的高速传输

第四范式开发者社区

机器学习 数据库 开源 云原生 特征平台

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