写点什么

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

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

    阅读完需:约 2 分钟

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

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

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

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

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

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

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

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

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

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

关注

评论

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

接口调试时如何请求一个需要登录才能访问的接口

代码没有BUG

接口调试 API测试 apipost

「 Java基础-对象 」一篇文章讲清楚Java开发中如何更优雅的创建对象

小刘学编程

Java Builder 序列化 对象创建 new

冰河指南AI技术社区基于ChatGPT正式启动运营

冰河

人工智能 程序员 AI 架构师 ChatGPT

户外交通信息led显示屏有以下特点才正规

Dylan

安装 LED显示屏 户外LED显示屏

嵌入式ARM设计编程(五) 实现信号的FIR滤波操作

timerring

arm

CleanMyMac2023测试版功能介绍

茶色酒

CleanMyMac X CleanMyMac X2023

嵌入式ARM设计编程(四) ARM启动过程控制

timerring

FPGA

追光进行时:沿着全光运力的新航道,加速驶向算力时代

脑极体

算力

StudioOne6免费试用版下载及版本功能介绍

茶色酒

StudioOne6 StudioOne

Pandoc API 上手指南

面向工资Coding

chatGPT:探讨如何实现自动化测试场景

夏兮。

自动化测试 selenium ChatGPT

Java高手速成 | Java web 实训之投票系统

TiAmo

Java Java web

架构实战营模块9作业

张建闯

架构实战营

6 理解业务概念和业务组件

涛哥 数字产品和业务架构

企业架构 业务架构

HashMap每次扩容时,为什么都必须是2的N次方?

云原生的基建:我理解的可观测性和OpenTelemetry

agnostic

可观测性 OpenTelemetry

房产|1月全国70城房价出炉!疫情放开后你关心的城市房价有何变化

前嗅大数据

大数据 数据分析 房产

2023-02-17:sdl是跨平台的多媒体开发库,请问用go语言如何调用?

福大大架构师每日一题

golang 音视频 SDL 流媒体 福大大

CorelDRAW Graphics Suite2023最新版本号

茶色酒

CorelDRAW 2022 CorelDraw2023

聊聊如何利用redis实现多级缓存同步

Java redis 缓存 多级缓存

虚幻引擎UE4如何实现打包后播放片头?其实超简单!

3DCAT实时渲染

虚幻引擎 ue

Teradata退出中国背后:云数仓成为行业主流发展趋势

酷克数据HashData

SpringBoot 容器刷新前回调ApplicationContextInitializer

Java spring Spring Boot

CleanMyMac2023电脑版免费下载教程

茶色酒

CleanMyMac X2023

关于工具软件:Apipost和Apifox哪个更好用看这篇就够了

代码没有BUG

Apifox 接口调试 API测试 apipost

一款好的低代码开发平台应该是什么样?

YonBuilder低代码开发平台

今年很火的AI绘画怎么玩

得物技术

华为游戏中心花瓣游戏开发者服务持续升级,赋能高效研运

最新动态

2023年中国直播电商发展洞察

易观分析

零售 直播 电商

【Unity 3D游戏开发】在Unity使用NoSQL数据库方法介绍

3DCAT实时渲染

Unity Unity3D 游戏开发引擎

Guitar Pro8吉他软件最新版安装下载教程

茶色酒

Guitar Pro8

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