![]() |
1
2
多态性只是一个工具的另一个观点也很流行。 然而,如果“那个家伙”确实有一些编写文本编辑器的经验,他很可能已经在讨论在文档组合层次结构的实现中使用多态性了。 基本上,这只是表示文档结构的对象树,包括格式(粗体、斜体等)和颜色等详细信息。 (大多数Web浏览器以浏览器文档对象模型(DOM)的形式实现类似的功能,尽管它们肯定不需要使用多态性。) 这些对象中的每一个都继承自定义方法(如compose())的公共基类(通常是抽象的)。 然后,当需要显示或更新文档结构时,代码只需遍历调用每个对象的concrete compose()的树。然后,每个对象都可以在文档中的适当位置进行组合和呈现。 这是多态性的经典用法,因为它允许添加(或更改)新文档“组件”,而不需要对主应用程序代码进行任何(或最小)更改。 不过,有很多种方法可以构建文本操作程序,多态性绝对不是。 必修的 建造一个。 |
![]() |
2
12
编写文本编辑器的多态性绝不是必要的。事实上,多态性用于解决 任何 编程问题并不重要。这只是一种方法。有时它使解决某些类型的问题更容易,有时它只是阻碍了。 这一点的证据是,在“oop”流行很久以前就已经开发出了完全可用的文本编辑器。 |
![]() |
3
9
我会说“不”,因为用非面向对象的语言编写完美的文本编辑器是完全可能的,所以它不可能如此重要。 多态性是解决问题的一种很好的技术,但它绝不是困扰软件开发人员的所有事情的金锤。 |
![]() |
4
5
这是一个术语,在OO编程风靡一时的时候,它被抛到了脑后。这家伙可能是想用大话吓唬你,我怀疑他是否完全理解他所说的话,尽管在解释时这是一个简单的概念。 这里的任何一个问题都是争论的关键——你需要写、维护或扩展多少次文本编辑器——没有——因此,对于一个相对简单的需要高效运行的代码,OO范式在中几乎没有用处。 |
![]() |
5
3
许多设计图案,如纪念品、飞锤等 可以 用于设计/实现文本编辑器需要继承性和多态性。 |
![]() |
6
2
我曾经用BASIC编写过一个文本编辑器。它不是一个 复杂的 不管怎样,文本编辑器作为一个文本模式窗口,在某些菜单和对话框中使用,这是一个很大的亮点,但它在当时仍然起作用——也就是说,它证明了我可以用BASIC编写文本编辑器。我有时甚至用它。我不会在公共场合展示消息来源——这太尴尬了! 当您的文本编辑器主要是在一个大的字符串数组中插入/删除字符并显示它们时,除了通常作为数组和字符串的标准抽象提供的抽象之外,几乎不需要或根本不需要抽象。 另一方面,在过去的20年中,PC上的文本编辑器需要处理的文本量增加了很多,有时甚至是一台具有千兆字节的现代PC也无法将整个文件保存在RAM中。除此之外,还有字符集和编码问题。一个好的文本编辑器需要记住(可能很大)数量的书签到多个文件中,并维护它们,以便它们引用相同的点,尽管进行了编辑。还有语法高亮显示、记录/回放宏的能力等等。 简而言之,现代文本编辑器比20年前DOS和其他micros中使用的东西要复杂得多。毫无疑问,使用一个处理抽象的好工具箱,这种复杂性更容易管理。 |
![]() |
7
2
虽然一个简单的文本编辑器(在MS-DOS的edit.com下面)可能只在静态类中实现得更容易(因为功能非常有限),但是一旦你进入菜单和对话框,你就会发现自己迫切需要面向对象的语言功能。 我个人不喜欢程序代码——我更喜欢OOP(程序结构、功能分离等)和功能编程(实现)的混合。 这听起来像是某种宗教争论,但我觉得我的个人风格非常值得推荐。通常,我需要的代码行比我工作的大多数开发人员少得多(更容易理解),我的代码感觉更“敏捷”和“灵活”。 试试看。-) 哦,多形性并不难理解。简单地想象一下,你(作为一个人)可以被当作: A)男人或女人 b)欧洲、亚洲、美国、非洲、大洋洲(我希望这是正确的)等…… c)按你的名字 d)根据您的职业 但你仍然是一个人-一个活着的人,一个宇宙的一部分…和你。 所以,对于一些出于统计原因问你几个问题的人来说,你可能会被当作一个来自大洋洲的女人(我不知道你从哪里来,但让我们假设一下),她今年42岁,在瑞士的HM住了23年(哈哈哈)。 对于你的雇主来说,你可能在编程和与同事交谈方面很有能力。 然而,如何扮演这些角色取决于您的实现。这就是你。 |
![]() |
8
1
取决于你说的是哪种文本编辑器。 你可以不写笔记本。但您很可能需要OOP来实现MS Word或OpenOffice之类的功能。 Design Patterns: Elements of Reusable Object-Oriented Software 将文本编辑器用于设计模式应用程序的示例(即“案例研究”)。你可能想看看这本书。 |
![]() |
Schadre · C-plus编码错误 2 年前 |
![]() |
Nithin K · 即使类属性的类型正确,也会获取异常 2 年前 |
![]() |
amirreza870 · Python OOP-更改类文本 2 年前 |
![]() |
A_K · 使用cat或打印方法打印部分内容的子集闭包 2 年前 |
![]() |
Mo Fatah · 如何使用Python类打印数独板? 2 年前 |