2

我知道 API 是如何工作的,我已经阅读了它并了解如何制作它。

但我不明白的是,构建 API 是否遵循设计模式,还是只是已经完成的事情,并且设计模式是围绕它建模的?

我记得曾经读过,有人说 API 设置可以被认为是 MVC 设计模式的一种子集。这会是正确的吗?

谢谢。

4

2 回答 2

4

Let me clear this up for you: API and Design Patterns are NOT related. Their relation is as much as relation between database engine and REST web services - both are software running on hardware.

I can write API using completely procedural code, or better yet, using anti-pattern like Spaghetti Code.

Consider this:

public class MyAPI
{
    public int GetNumberOfLinesInThisSpaghettiCode()
    {
         // ---- Lots of spaghetti code  -----
         return 10000000000000;
    }

}

There we go - an API with no design pattern. You see, where it says "public" - this is API. Next subject.

Design Pattern is a common solution to a common problem. There are also anti-patterns - these are common practices of wrongly solve common problems.

Why it is important to know about design patterns? - besides obvious - that you create well structured, maintainable, etc. code; also because you can learn code much faster if it is developed using design patterns - it is more understandable, even if you look into it first time. Each pattern may have its specific implementation but generally it will resemble the "book version" and new programmer can quickly get going at new place, for example.

Read On at sourcemaking

于 2013-11-05T20:46:11.247 回答
1

但我不明白的是,构建 API 是否遵循设计模式,还是只是已经完成的事情,设计模式是围绕它建模的?

API 是使用/遵循设计模式构建的一堆代码片段。您无需编写 API,然后在其上应用设计模式。您使用设计模式编写 API,并以连贯的方式对代码片段进行分组。
让我们考虑 Java 语言。如果您仔细查看它的 API,您会发现许多用于构建它的类的设计模式。例如,Java I/0 API 大量使用装饰器模式。了解装饰器模式可以帮助您轻松掌握 Java I/O API。访问者和策略模式用于构建 Java 集合 API。还有很多其他的例子。
当您完成构建 API 后,您使用的设计模式要求开发人员在您使用的设计模式允许他们使用的范围内使用它。

我记得曾经读过,有人说 API 设置可以被认为是 MVC 设计模式的一种子集。这会是正确的吗?

API设置是什么意思?我不同意这种说法,因为它暗示任何 API 都遵循 MVC 设计模式。我不确定这是不是真的。MVC 与其他设计模式一样是一种设计模式,即使它更常用于架构级别。例如,Struts(顺便说一下,它不是 API 而是框架)是基于 MVC 设计模式构建的。此外,还有其他不同于 MVC 的架构模式。

于 2013-11-05T15:33:51.653 回答