首页
学习
活动
专区
工具
TVP
发布
精选内容/技术社群/优惠产品,尽在小程序
立即前往

永远不要使用公共嵌套枚举?

公共嵌套枚举是指在一个类中定义的枚举类型,可以被该类的所有实例访问和使用。然而,使用公共嵌套枚举可能会导致一些问题和不利影响,因此在开发中应该避免使用。

首先,公共嵌套枚举会增加类的复杂性。当一个类中包含多个公共嵌套枚举时,会使类的定义变得冗长,难以阅读和理解。这会增加代码维护的难度,并且可能导致开发人员在使用时出现混淆和错误。

其次,公共嵌套枚举会破坏类的封装性。封装是面向对象编程的重要原则之一,它通过将数据和操作封装在类内部,提供了良好的抽象和封闭性。然而,公共嵌套枚举将枚举类型暴露给了类的外部,违反了封装的原则。

此外,公共嵌套枚举还可能引起命名冲突。如果多个类都定义了相同名称的公共嵌套枚举,那么在使用时就会产生冲突,导致编译错误或运行时错误。

为了避免上述问题,可以考虑将枚举定义为独立的顶级类型,而不是嵌套在类中。这样可以提高代码的可读性和可维护性,并且符合面向对象编程的封装原则。如果需要在类中使用枚举类型,可以将其定义为私有或受保护的成员,并提供相应的访问方法。

总结起来,永远不要使用公共嵌套枚举,因为它会增加类的复杂性、破坏封装性,并可能引起命名冲突。在开发中,应该将枚举定义为独立的顶级类型,以提高代码质量和可维护性。

腾讯云相关产品和产品介绍链接地址:

页面内容是否对你有帮助?
有帮助
没帮助

相关·内容

永远不要在代码中使用「User」这个单词!

“user” 的概念是模糊不清的,使用更精准的术语几乎总是能起到更好的效果。 你没有使用者 最开始,没有任何一个软件系统真的有使用者存在。...我会使用三个例子,从一个极端的情况出发。 机票预订系统没有“users” 我曾经给机票预订系统写过访问控制逻辑,下面只是一小部分需求: 旅客可以使用预定记录码通过网站查看预定信息。...“user”这个概念根本没用,并且在许多请求中我根本不会使用这个单词,举个例子,我们的请求必须包括旅客和代理人的证件,而不是使用者的证件。 Unix 没有 “users” 我们看一个不太一样的例子。...如果你开始怀疑“user”这个词,最终你可能发现最终你其实只需要两个概念:团队(用来组织关系和支付)和成员(实际使用服务的人)。...使用模糊不清的概念比如“用户”来组织你的软件,将会话费大量时间和精力来解决未来发生的问题。一上来就开始编码看起来是高产的,事实恰好相反。

34640

永远不要在 MySQL 中使用“utf8”

我要在这里澄清一下:所有在使用“utf8”的 MySQL 和 MariaDB 用户都应该改用“utf8mb4”,永远不要使用“utf8”。 那么什么是编码?什么是 UTF-8?...几乎所有的网络应用都使用了 Unicode 字符集,因为没有理由使用其他字符集。 Unicode 字符集包含了上百万个字符。最简单的编码是 UTF-32,每个字符使用 32 位。...MySQL 开发者在最开始尝试 UTF-8 时使用了每个字符 6 个字节,CHAR(1) 使用 6 个字节,CHAR(2) 使用 12 个字节,并以此类推。...那些希望在空间和速度上双赢的用户,当他们在使用“utf8”的 CHAR 列时,实际上使用的空间比预期的更大,速度也比预期的慢。...总结 如果你在使用 MySQL 或 MariaDB,不要用“utf8”编码,改用“utf8mb4”。

86530

永远不要在代码中使用“User”这个单词

“user” 的概念是模糊不清的,使用更精准的术语几乎总是能起到更好的效果。 你没有使用者 最开始,没有任何一个软件系统真的有使用者存在。...我会使用三个例子,从一个极端的情况出发。 机票预订系统没有“users” 我曾经给机票预订系统写过访问控制逻辑,下面只是一小部分需求: 1.旅客可以使用预定记录码通过网站查看预定信息。...“user”这个概念根本没用,并且在许多请求中我根本不会使用这个单词,举个例子,我们的请求必须包括旅客和代理人的证件,而不是使用者的证件。 ?...如果你开始怀疑“user”这个词,最终你可能发现最终你其实只需要两个概念:团队(用来组织关系和支付)和成员(实际使用服务的人)。...使用模糊不清的概念比如“用户”来组织你的软件,将会话费大量时间和精力来解决未来发生的问题。一上来就开始编码看起来是高产的,事实恰好相反。

29430

永远不要在代码中使用「User」这个单词

“user” 的概念是模糊不清的,使用更精准的术语几乎总是能起到更好的效果。 你没有使用者 最开始,没有任何一个软件系统真的有使用者存在。...我会使用三个例子,从一个极端的情况出发。 机票预订系统没有“users” 我曾经给机票预订系统写过访问控制逻辑,下面只是一小部分需求: 旅客可以使用预定记录码通过网站查看预定信息。...“user”这个概念根本没用,并且在许多请求中我根本不会使用这个单词,举个例子,我们的请求必须包括旅客和代理人的证件,而不是使用者的证件。 Unix 没有 “users” 我们看一个不太一样的例子。...如果你开始怀疑“user”这个词,最终你可能发现最终你其实只需要两个概念:团队(用来组织关系和支付)和成员(实际使用服务的人)。...使用模糊不清的概念比如“用户”来组织你的软件,将会话费大量时间和精力来解决未来发生的问题。一上来就开始编码看起来是高产的,事实恰好相反。

34420

永远不要在代码中使用「User」这个单词!

“user” 的概念是模糊不清的,使用更精准的术语几乎总是能起到更好的效果。 你没有使用者 最开始,没有任何一个软件系统真的有使用者存在。...我会使用三个例子,从一个极端的情况出发。 机票预订系统没有“users” 我曾经给机票预订系统写过访问控制逻辑,下面只是一小部分需求: 旅客可以使用预定记录码通过网站查看预定信息。...“user”这个概念根本没用,并且在许多请求中我根本不会使用这个单词,举个例子,我们的请求必须包括旅客和代理人的证件,而不是使用者的证件。 Unix 没有 “users” 我们看一个不太一样的例子。...如果你开始怀疑“user”这个词,最终你可能发现最终你其实只需要两个概念:团队(用来组织关系和支付)和成员(实际使用服务的人)。...使用模糊不清的概念比如“用户”来组织你的软件,将会话费大量时间和精力来解决未来发生的问题。一上来就开始编码看起来是高产的,事实恰好相反。

34620

永远不要在代码中使用“User”这个单词

“user” 的概念是模糊不清的,使用更精准的术语几乎总是能起到更好的效果。 你没有使用者 最开始,没有任何一个软件系统真的有使用者存在。...我会使用三个例子,从一个极端的情况出发。 机票预订系统没有“users” 我曾经给机票预订系统写过访问控制逻辑,下面只是一小部分需求: 旅客可以使用预定记录码通过网站查看预定信息。...“user”这个概念根本没用,并且在许多请求中我根本不会使用这个单词,举个例子,我们的请求必须包括旅客和代理人的证件,而不是使用者的证件。 Unix 没有 “users” 我们看一个不太一样的例子。...如果你开始怀疑“user”这个词,最终你可能发现最终你其实只需要两个概念:团队(用来组织关系和支付)和成员(实际使用服务的人)。...使用模糊不清的概念比如“用户”来组织你的软件,将会话费大量时间和精力来解决未来发生的问题。一上来就开始编码看起来是高产的,事实恰好相反。

59230

永远不要在代码里使用 User 这个单词

“user” 的概念是模糊不清的,使用更精准的术语几乎总是能起到更好的效果。 你没有使用者 最开始,没有任何一个软件系统真的有使用者存在。...我会使用三个例子,从一个极端的情况出发。机票预订系统没有“users” 我曾经给机票预订系统写过访问控制逻辑,下面只是一小部分需求: 旅客可以使用预定记录码通过网站查看预定信息。...“user”这个概念根本没用,并且在许多请求中我根本不会使用这个单词,举个例子,我们的请求必须包括旅客和代理人的证件,而不是使用者的证件。 Unix 没有 “users” 我们看一个不太一样的例子。...如果你开始怀疑“user”这个词,最终你可能发现最终你其实只需要两个概念:团队(用来组织关系和支付)和成员(实际使用服务的人)。...使用模糊不清的概念比如“用户”来组织你的软件,将会花费大量时间和精力来解决未来发生的问题。一 上来就开始编码看起来是高产的,事实恰好相反。

32910

永远不要在代码中使用「User」这个单词

“user” 的概念是模糊不清的,使用更精准的术语几乎总是能起到更好的效果。 你没有使用者 最开始,没有任何一个软件系统真的有使用者存在。...我会使用三个例子,从一个极端的情况出发。 机票预订系统没有“users” 我曾经给机票预订系统写过访问控制逻辑,下面只是一小部分需求: 旅客可以使用预定记录码通过网站查看预定信息。...“user”这个概念根本没用,并且在许多请求中我根本不会使用这个单词,举个例子,我们的请求必须包括旅客和代理人的证件,而不是使用者的证件。 Unix 没有 “users” 我们看一个不太一样的例子。...如果你开始怀疑“user”这个词,最终你可能发现最终你其实只需要两个概念:团队(用来组织关系和支付)和成员(实际使用服务的人)。...使用模糊不清的概念比如“用户”来组织你的软件,将会话费大量时间和精力来解决未来发生的问题。一上来就开始编码看起来是高产的,事实恰好相反。

33530

记住:永远不要在 MySQL 中使用 UTF-8

我要在这里澄清一下:所有在使用“utf8”的MySQL和MariaDB用户都应该改用“utf8mb4”,永远不要使用“utf8”。 那么什么是编码?什么是UTF-8?...几乎所有的网络应用都使用了Unicode字符集,因为没有理由使用其他字符集。 Unicode字符集包含了上百万个字符。最简单的编码是UTF-32,每个字符使用32位。...其他的字符可能使用16位或24位。一篇类似本文这样的文章,如果使用UTF-8编码,占用的空间只有UTF-32的四分之一左右。...MySQL开发者在最开始尝试UTF-8时使用了每个字符6个字节,CHAR(1)使用6个字节,CHAR(2)使用12个字节,并以此类推。 应该说,他们最初的行为才是正确的,可惜这一版本一直没有发布。...总结 如果你在使用MySQL或MariaDB,不要用“utf8”编码,改用“utf8mb4”。

31220

记住,永远不要在 MySQL 中使用 “utf8”

我要在这里澄清一下:所有在使用“utf8”的 MySQL 和 MariaDB 用户都应该改用“utf8mb4”,永远不要使用“utf8”。 那么什么是编码?什么是 UTF-8?...几乎所有的网络应用都使用了 Unicode 字符集,因为没有理由使用其他字符集。 Unicode 字符集包含了上百万个字符。最简单的编码是 UTF-32,每个字符使用 32 位。...MySQL 开发者在最开始尝试 UTF-8 时使用了每个字符 6 个字节,CHAR(1) 使用 6 个字节,CHAR(2) 使用 12 个字节,并以此类推。...那些希望在空间和速度上双赢的用户,当他们在使用“utf8”的 CHAR 列时,实际上使用的空间比预期的更大,速度也比预期的慢。...总结 如果你在使用 MySQL 或 MariaDB,不要用“utf8”编码,改用“utf8mb4”。

64620

记住:永远不要在 MySQL 中使用 UTF-8

我要在这里澄清一下:所有在使用“utf8”的MySQL和MariaDB用户都应该改用“utf8mb4”,永远不要使用“utf8”。 那么什么是编码?什么是UTF-8?...几乎所有的网络应用都使用了Unicode字符集,因为没有理由使用其他字符集。 Unicode字符集包含了上百万个字符。最简单的编码是UTF-32,每个字符使用32位。...其他的字符可能使用16位或24位。一篇类似本文这样的文章,如果使用UTF-8编码,占用的空间只有UTF-32的四分之一左右。...MySQL开发者在最开始尝试UTF-8时使用了每个字符6个字节,CHAR(1)使用6个字节,CHAR(2)使用12个字节,并以此类推。 应该说,他们最初的行为才是正确的,可惜这一版本一直没有发布。...总结 如果你在使用MySQL或MariaDB,不要用“utf8”编码,改用“utf8mb4”。

47910

记住,永远不要在MySQL中使用“utf8”

我要在这里澄清一下:所有在使用“utf8”的 MySQL 和 MariaDB 用户都应该改用“utf8mb4”,永远不要使用“utf8”。 1 什么是编码?什么是 UTF-8?...几乎所有的网络应用都使用了 Unicode 字符集,因为没有理由使用其他字符集。 Unicode 字符集包含了上百万个字符。最简单的编码是 UTF-32,每个字符使用 32 位。...MySQL 开发者在最开始尝试 UTF-8 时使用了每个字符 6 个字节,CHAR(1) 使用 6 个字节,CHAR(2) 使用 12 个字节,并以此类推。...那些希望在空间和速度上双赢的用户,当他们在使用“utf8”的 CHAR 列时,实际上使用的空间比预期的更大,速度也比预期的慢。...写在最后 如果你在使用 MySQL 或 MariaDB,不要用“utf8”编码,改用“utf8mb4”。这里提供了一个指南用于将现有数据库的字符编码从“utf8”转成“utf8mb4”:

67640

记住:永远不要在 MySQL 中使用 UTF-8

我要在这里澄清一下:所有在使用“utf8”的 MySQL 和 MariaDB 用户都应该改用“utf8mb4”,永远不要使用“utf8”。 那么什么是编码?什么是 UTF-8?...几乎所有的网络应用都使用了 Unicode 字符集,因为没有理由使用其他字符集。 Unicode 字符集包含了上百万个字符。最简单的编码是 UTF-32,每个字符使用 32 位。...MySQL 开发者在最开始尝试 UTF-8 时使用了每个字符 6 个字节,CHAR(1) 使用 6 个字节,CHAR(2) 使用 12 个字节,并以此类推。...那些希望在空间和速度上双赢的用户,当他们在使用“utf8”的 CHAR 列时,实际上使用的空间比预期的更大,速度也比预期的慢。...总结 如果你在使用 MySQL 或 MariaDB,不要用“utf8”编码,改用“utf8mb4”。

36710

切记:永远不要在MySQL中使用UTF-8

我要在这里澄清一下:所有在使用“utf8”的MySQL和MariaDB用户都应该改用“utf8mb4”,永远不要使用“utf8”。 那么什么是编码?什么是UTF-8?...几乎所有的网络应用都使用了Unicode字符集,因为没有理由使用其他字符集。 Unicode字符集包含了上百万个字符。最简单的编码是UTF-32,每个字符使用32位。...其他的字符可能使用16位或24位。一篇类似本文这样的文章,如果使用UTF-8编码,占用的空间只有UTF-32的四分之一左右。...MySQL开发者在最开始尝试UTF-8时使用了每个字符6个字节,CHAR(1)使用6个字节,CHAR(2)使用12个字节,并以此类推。 应该说,他们最初的行为才是正确的,可惜这一版本一直没有发布。...总结 如果你在使用MySQL或MariaDB,不要用“utf8”编码,改用“utf8mb4”。

38120

记住:永远不要在MySQL中使用UTF-8

我要在这里澄清一下:所有在使用“utf8”的MySQL和MariaDB用户都应该改用“utf8mb4”,永远不要使用“utf8”。 那么什么是编码?什么是UTF-8?...几乎所有的网络应用都使用了Unicode字符集,因为没有理由使用其他字符集。 Unicode字符集包含了上百万个字符。最简单的编码是UTF-32,每个字符使用32位。...其他的字符可能使用16位或24位。一篇类似本文这样的文章,如果使用UTF-8编码,占用的空间只有UTF-32的四分之一左右。...MySQL开发者在最开始尝试UTF-8时使用了每个字符6个字节,CHAR(1)使用6个字节,CHAR(2)使用12个字节,并以此类推。 应该说,他们最初的行为才是正确的,可惜这一版本一直没有发布。...总结 如果你在使用MySQL或MariaDB,不要用“utf8”编码,改用“utf8mb4”。

29331

记住:永远不要在 MySQL 中使用 UTF-8

我要在这里澄清一下:所有在使用“utf8”的MySQL和MariaDB用户都应该改用“utf8mb4”,永远不要使用“utf8”。 那么什么是编码?什么是UTF-8?...几乎所有的网络应用都使用了Unicode字符集,因为没有理由使用其他字符集。 Unicode字符集包含了上百万个字符。最简单的编码是UTF-32,每个字符使用32位。...MySQL开发者在最开始尝试UTF-8时使用了每个字符6个字节,CHAR(1)使用6个字节,CHAR(2)使用12个字节,并以此类推。 应该说,他们最初的行为才是正确的,可惜这一版本一直没有发布。...总结 如果你在使用MySQL或MariaDB,不要用“utf8”编码,改用“utf8mb4”。...Linux运维宝典:最常用的150个命令汇总 工作发狂:Mybatis 中$和#千万不要乱用!

41740

记住:永远不要在 MySQL 中使用 UTF-8

我要在这里澄清一下:所有在使用“utf8”的 MySQL 和 MariaDB 用户都应该改用“utf8mb4”,永远不要使用“utf8”。 那么什么是编码?什么是 UTF-8?...几乎所有的网络应用都使用了 Unicode 字符集,因为没有理由使用其他字符集。 Unicode 字符集包含了上百万个字符。最简单的编码是 UTF-32,每个字符使用 32 位。...MySQL 开发者在最开始尝试 UTF-8 时使用了每个字符 6 个字节,CHAR(1) 使用 6 个字节,CHAR(2) 使用 12 个字节,并以此类推。...那些希望在空间和速度上双赢的用户,当他们在使用“utf8”的 CHAR 列时,实际上使用的空间比预期的更大,速度也比预期的慢。...总结 如果你在使用 MySQL 或 MariaDB,不要用“utf8”编码,改用“utf8mb4”。

43730

请牢记:永远不要在MySQL中使用UTF-8

我要在这里澄清一下:所有在使用“utf8”的MySQL和MariaDB用户都应该改用“utf8mb4”,永远不要使用“utf8”。 那么什么是编码?什么是UTF-8?...几乎所有的网络应用都使用了Unicode字符集,因为没有理由使用其他字符集。 Unicode字符集包含了上百万个字符。最简单的编码是UTF-32,每个字符使用32位。...其他的字符可能使用16位或24位。一篇类似本文这样的文章,如果使用UTF-8编码,占用的空间只有UTF-32的四分之一左右。...MySQL开发者在最开始尝试UTF-8时使用了每个字符6个字节,CHAR(1)使用6个字节,CHAR(2)使用12个字节,并以此类推。 应该说,他们最初的行为才是正确的,可惜这一版本一直没有发布。...总结 如果你在使用MySQL或MariaDB,不要用“utf8”编码,改用“utf8mb4”。

31120

转载:记住,永远不要在 MySQL 中使用“utf8”

我要在这里澄清一下:所有在使用“utf8”的 MySQL 和 MariaDB 用户都应该改用“utf8mb4”,永远不要使用“utf8”。 那么什么是编码?什么是 UTF-8?...几乎所有的网络应用都使用了 Unicode 字符集,因为没有理由使用其他字符集。 Unicode 字符集包含了上百万个字符。最简单的编码是 UTF-32,每个字符使用 32 位。...MySQL 开发者在最开始尝试 UTF-8 时使用了每个字符 6 个字节,CHAR(1) 使用 6 个字节,CHAR(2) 使用 12 个字节,并以此类推。...那些希望在空间和速度上双赢的用户,当他们在使用“utf8”的 CHAR 列时,实际上使用的空间比预期的更大,速度也比预期的慢。...总结 如果你在使用 MySQL 或 MariaDB,不要用“utf8”编码,改用“utf8mb4”。

42710

记住,永远不要在 Flutter 中使用全局变量

则必须搜索整个程序并重构每个有权访问已删除全局变量的函数 它们很难测试,因为你必须在测试用例之间重置它们 很难跟踪更改,因为每个函数都可以修改全局变量 以上所有原因都说明了为什么在 Flutter 中永远不应该使用全局变量...全局变量是公共变量,可以被 Flutter 程序中的每个方法和对象访问。 全局变量是局部变量的替代品,它们在方法中创建并在该方法中访问。...Flutter 中使用全局变量的缺点 在 Flutter 中使用全局变量一直受到质疑和批评,通常被认为是不好的做法。以下是使用全局变量的缺点: 1....如果你想有效地使用封装,你必须禁止全局变量。 由于全局变量创建了“面条”代码,因此需要大量的规范来约束它们。但是,有些开发人员会使用全局变量,因为他们在一个小团队中,并且在某些情况下不利于更改。...此状态管理器确保你的代码可测试且易于阅读,因为它消除了用于组合对象的嵌套。特殊功能是它在编译过程中检测错误。这将节省你的时间,因为你将在运行时将缺陷添加到你的应用程序之前修复错误。 4.

3.4K30
领券