IT技术博客大学习 共学习 共进步
全部 移动开发 后端 数据库 AI 算法 安全 DevOps 前端 设计 开发者

标签:Smalltalk

共 2 篇相关文章

IT 累计浏览 2,303

Objective-C 的对象模型

作者从自己的C++开发经验出发,对Objective-C的对象模型进行了梳理和对比。文章指出,Objective-C的消息传递语法(如`[obj message:param]`)比C++的函数调用更强调可读性,参数名称与方法名融为一体,减少了参数写错或遗漏的风险。 在类与对象的设计上,两者差异显著。Objective-C通过`@property`简化实现,并支持运行时动态绑定,使用`id`类型可以向任何对象发送消息。而C++的RTTI则更偏向静态的类型识别。作者特别提到了Objective-C独有的Category机制,它允许在不改变类内存布局的前提下,将方法拆分到不同模块中,这比C++的友元(friend)机制使用起来更为优雅。此外,协议(`@protocol`)类似于接口,但支持`@optional`方法,提供了更灵活的契约检查。 文章认为,Objective-C在基础库整合和语言扩展方式(利用`@`符号)上比C++更为简洁一致,其动态模型带来的灵活性,如今已能通过先进的编译技术弥补性能损耗。整体来看,Objective-C牺牲了部分静态确定性,换来了运行时的动态能力,试图在性能与灵活性之间找到独特平衡点。

IT 累计浏览 6,088

MVC之父对“模型-视图-控制器”的最初定义

这篇讲的是软件架构中那个我们天天在用、却可能很少细想的 MVC 模式。文章没有一上来就讲代码实现,而是带着读者回到了 MVC 概念诞生的源头,去探寻“模型-视图-控制器”这个经典组合最初的定义和本意。 作者从 MVC 之父的视角出发,清晰地拆解了这三个核心组件各自的职责边界:模型(Model)专注于数据和业务逻辑的纯粹封装,视图(View)只负责将数据呈现给用户,而控制器(Controller)则充当两者之间的协调者,处理输入并更新模型。文章强调,理解这份“原始契约”至关重要,因为它揭示了 MVC 解耦的真正目的——让关注点分离,使系统的每一部分都能独立演进和测试。 读完后你会发现,今天很多 Web 框架里模糊掉的分层,其实在最初的蓝图中有着严谨的划分。这种回归本源的梳理,能帮助我们在面对复杂系统时,更清醒地做出架构决策,而不是盲目套用现成的模式。