《面向对象设计实践指南:Ruby语言描述》—第8章 8.6节小结

简介: 组合让你可以将多个小部分结合起来,创建出更复杂的对象,从而让整体所包含的内容比各个部分的总和还要多。组合后的对象往往由简单、离散的实体组成,它们可以轻易地重新排列成新的组合。这些简单的对象易于理解、重用和测试,但因为它们组合成了一个更复杂的整体,所以对更大型应用程序的操作可能并不像理解各个部分一样那么容易。

本节书摘来自异步社区《面向对象设计实践指南:Ruby语言描述》一书中的第8章,第8.6节小结,作者【美】Sandi Metz,更多章节内容可以访问云栖社区“异步社区”公众号查看。

8.6 小结
面向对象设计实践指南:Ruby语言描述
组合让你可以将多个小部分结合起来,创建出更复杂的对象,从而让整体所包含的内容比各个部分的总和还要多。组合后的对象往往由简单、离散的实体组成,它们可以轻易地重新排列成新的组合。这些简单的对象易于理解、重用和测试,但因为它们组合成了一个更复杂的整体,所以对更大型应用程序的操作可能并不像理解各个部分一样那么容易。

组合、经典继承和通过模块的行为共享,都是相互独立的代码编排技术。每一个都有不同的利与弊特点。这些差异使它们更适合用于解决各种稍有不同的问题。

这些技术都是工具,仅此而已。如果你都对它们进行练习,那么你会成为一名更加出色的设计师。想要学会正确地使用它们,经验和判断力很重要。在获得经验的最好方法中,有一种就是从你自己的错误中学习。提高设计技能的关键是尝试这些技术,愉快地接受错误,抛弃过去的设计决定,并彻底重构。

在有了经验之后,你便可以在最初选择正确的技术时表现得更好,你的成本会下降,而应用程序也会得到改进。

本文仅用于学习和交流目的,不代表异步社区观点。非商业转载请注明作译者、出处,并保留本文的原始链接。

相关文章
|
8月前
|
算法 测试技术 API
如何用Ruby语言提高代码的可读性和可维护性
在软件开发过程中,代码的可读性和可维护性是非常重要的因素。一旦代码变得难以理解和修改,就会导致开发速度变慢、bug增多以及团队合作效率下降。在本篇博客中,我们将探讨一些使用Ruby编程语言的技巧和最佳实践,以提高代码的可读性和可维护性。
49 1
|
8月前
|
XML 前端开发 安全
构建自己的MVC框架(Ruby语言实现)-- 2. 创建ApplicationController
构建自己的MVC框架(Ruby语言实现)-- 2. 创建ApplicationController
|
8月前
|
前端开发 关系型数据库 开发工具
构建自己的MVC框架(Ruby语言实现)-- 开篇
构建自己的MVC框架(Ruby语言实现)-- 开篇
|
8月前
|
前端开发 关系型数据库 开发工具
构建自己的MVC框架(Ruby语言实现)-- 第一章 从零到“它工作了!”
构建自己的MVC框架(Ruby语言实现)-- 第一章 从零到“它工作了!”
|
存储 自然语言处理 Go
红袖添香,绝代妖娆,Ruby语言基础入门教程之Ruby3基础数据类型(data types)EP02
Ruby是强类型动态语言,即Ruby中一旦某一个对象被定义类型,如果不通过强制转换操作,那么它永远就是该数据类型,并且只有在Ruby解释器运行时才会检测对象数据类型,它的一切皆为对象(包括 nil 值对象),可以通过调用内置class属性来获取该对象的具体数据类型。对于 Ruby 而言,所有类型都继承自 Object 类(根类为 BasicObject)。
红袖添香,绝代妖娆,Ruby语言基础入门教程之Ruby3基础数据类型(data types)EP02
|
Ruby Python
红袖添香,绝代妖娆,Ruby语言基础入门教程之Ruby3基础语法,第一次亲密接触EP01
书接上回,前一篇我们在全平台构建好了Ruby3的开发环境,现在,可以和Ruby3第一次亲密接触了。 Ruby是一门在面向对象层面无所不用其极的解释型编程语言。 我们可以把编写Ruby代码看作是一场行为上的艺术,编码就像跳舞一样,Ruby的每一步都很优雅,几乎没有一步是多余的。
红袖添香,绝代妖娆,Ruby语言基础入门教程之Ruby3基础语法,第一次亲密接触EP01
|
Kubernetes Shell 芯片
时间老去,Ruby不死,Ruby语言基础入门教程之Ruby3全平台开发环境搭建EP00
如果说电子游戏是第九艺术,那么,编程技术则配得上第十艺术的雅称。艺术发展的普遍规律就是要给与人们对于艺术作品的更高层感受,而Matz的Ruby语言则正是这样一件艺术品。 无论是语法还是理念,都让Ruby开发者感受到款待,如此,Ruby代码就像活了过来,它们时而高声,却藏不住优雅,时而细语,却意外地铿锵,真是美妙,这种庄重而温柔的魅力,用那一代奉松本行弘为偶像的人的话说,叫剑胆琴心。现在的话又讲,心有猛虎,细嗅蔷薇。
时间老去,Ruby不死,Ruby语言基础入门教程之Ruby3全平台开发环境搭建EP00
|
Java 数据挖掘 数据库连接
简单讲一下 python,Java,C++,C#,Go,Ruby 语言的优势和前景
python,Java,C++,C#,Go,Ruby 语言的优势和前景
简单讲一下 python,Java,C++,C#,Go,Ruby 语言的优势和前景
|
算法 Ruby
【Ruby on Rails全栈课程】2.1 ruby语言入门
在第一章中,项目我们已经创建好并且能输出第一个helloworld了,我们先不急着做项目,先了解一下ruby,只是需要看得懂代码。这一章我们简单介绍一些ruby语言的语法
140 0
|
Java Ruby JavaScript
为什么说Ruby是纯面向对象的语言
Ruby 是纯面向对象的语言,Ruby 中的一切都是以对象的形式出现。Ruby 中的每个值都是一个对象,即使是最原始的东西:字符串、数字,甚至连 true 和 false 都是对象。
771 0