gpt4 book ai didi

oop - 理解 OOP 中的抽象

转载 作者:行者123 更新时间:2023-12-04 17:34:10 27 4
gpt4 key购买 nike

我正在研究面向对象的概念,抽象概念基本上被描述为对用户隐藏实现。因此,如果类中有一个成员函数并且我们为某些任务调用该函数,抽象表示用户不应该关心事情是如何完成的,而应该只知道正在完成什么。但即使在非面向对象的编程风格中,如果我们编写一个函数,整个任务也可以通过简单地调用一个函数来完成。它不也遵循抽象逻辑吗?或者,OOP 中的抽象和函数式编程之间有什么区别吗?

最佳答案

在面向对象编程中,我们通常从继承和多态的角度来考虑抽象。

让我们考虑一下 Writer 接口(interface)

interface Writer {
void write(byte[] bytes)
}

此接口(interface)允许用户写入...某物。什么,我们并不特别担心。我们可以有多个版本:

class FileWriter implements Writer

class StringWriter implements Writer

class LogWriter implements Writer

class MySuperCustomWriter implements Writer

我们在哪里写并不重要,可以是 FileString、socket 或任何地方。我们想要做的就是写一些东西。这让我们可以编写如下代码:

public class MyBusinessLogic {

private final Writer writer;

public MyBusinessLogic(Writer writer) {
this.writer = writer;
}

void someBusinessLogic() {
// ..
writer.write(someStuff);
}
}

我们这里有一些想要编写的业务逻辑。通过使用接口(interface),我们的业务逻辑不再依赖于任何特定的写法。它只是获取一些能够进行一些写入的对象。我们可以将它传递给我们的任何示例编写器,并确保它能正常工作,因为我们感兴趣的是编写的行为,而不是实现。

通过这样做,业务逻辑不依赖于文件系统、网络或其他任何东西。

关于oop - 理解 OOP 中的抽象,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/57337727/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com