博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
何时使用静态 API
阅读量:7058 次
发布时间:2019-06-28

本文共 422 字,大约阅读时间需要 1 分钟。

看了《》,记录一下自己的看法。

 

在进行API设计时,静态类的使用有时会为设计者带来一些烦恼。应该将某个函数暴露为静态函数还是实例方法,这一点常常会造成人们的争论。

大部分人学完设计模式后,都会尽量使用单例模式。但是,静态函数的主要优点在于其简便性。调用者可以在代码中的任意位置使用静态函数,而无需为实例的创建、管理以及依赖注入等问题而烦恼。同时,由于没有创建新的实例,因而也不存在垃圾回收的问题,从而使性能也得以提高。

当然,有时静态API也需要维护一些状态,这时设计者必须保证静态函数的线程安全,而这往往牵涉到开销较大的加锁与同步等技术。而且即便独立的调用是线程安全的,但调用者也往往需要将一系列调用过程封装为一个原子性的事务。

无状态的尽量设计为静态。

 

我在面试应试者时,往往会问的一个问题是:使用单例模式相对于使用静态方法,有什么绝对性的优势?(或者说,有什么是单例能做到的,但是使用静态 API 的设计却无法办到的?)

读者,你知道吗?

转载地址:http://jcwll.baihongyu.com/

你可能感兴趣的文章
使用OWC 做图表时按周、月、年设置时间刻度是参数无效问题解决方法
查看>>
本周链接列表(2007.11.26-2007.12.02)
查看>>
使用 Jtest:一款优秀的 Java 代码优化和测试工具
查看>>
Java Service Wrapper简介与使用
查看>>
裂变问题
查看>>
openstack上创建vm实例后,状态为ERROR问题解决
查看>>
[LeetCode] Lowest Common Ancestor of a Binary Search Tree 二叉搜索树的最小共同父节点
查看>>
图像编程魔法门(By C#) 目录
查看>>
.NET平台开源项目速览(2)Compare .NET Objects对象比较组件
查看>>
GridView多行表头合并
查看>>
Geometry 对象浅析
查看>>
service mysqld start MySQL Daemon failed to start.
查看>>
在Eclipse中设置中文JavaDOC<转>
查看>>
C++ 类的静态成员详细讲解
查看>>
编写优美的GTest测试案例
查看>>
在Android中进行单元测试遇到的问题
查看>>
2.7. SNMP
查看>>
Android全局代理软件ProxyDroid和TransProxy源码分享
查看>>
C# WinForm开发系列 - ADO.NET
查看>>
SQL Server误区30日谈-Day23-有关锁升级的误区
查看>>