java - 像 getSystemService() 这样的 "String-Based"API 有什么好处?

标签 java android oop api-design

我是 Android 编程的新手,但我有深厚的 iOS 编程背景。

我注意到Android平台有一个“奇怪”的东西: 一些系统服务(如 NotificationManager)通过 getSystemService() 方法访问,该方法接受字符串作为参数并返回所需的类。

我的问题是,为什么谷歌(或者设计这个 API 的人)会这样做,而不为每个系统服务制定具体的获取方法?

我认为为每个服务制作一个单独的方法会更健壮并且更不容易出错。它还节省了转换的需要,这是一种“丑陋”的编程。

那么使用按名称检索的优势是什么?

最佳答案

我认为这样做是为了抽象的通用性,以及在不使用新方法名称、参数等破坏架构的情况下,根据需要在下一版本中添加更多内容的能力。

关于java - 像 getSystemService() 这样的 "String-Based"API 有什么好处?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/6974429/

相关文章:

android - 如何在一行 ListView 上捕捉到手势后获取底层 View

java - 如何从 Android 上传文件到 Node.js 服务器

c++ - 拥有类继承和拥有基类作为派生类中的数据成员之间有明显的区别吗?

Java:多态性和调用方法

java - 对大数组进行排序不返回输出

java - 如何顺利地为已有的PDF文档添加内容?

java - Android Onclick优先级: ListView or ImageView in ListView?

java - 在 Tomcat 上部署一个 SpringBoot 应用程序作为一个 WAR 包

oop - 单例模式 - Head First Design Patterns 书中的疑问

android - 从 url 加载图像到 Recyclerview