并行模式之不变模式

举报
西魏陶渊明 发表于 2022/09/25 02:55:55 2022/09/25
【摘要】 1. 不变模式的核心思想 在并行开发过程中,为确保数据的一致性和正确性,又必要对对象进行同步,但是同步操作对系统性能有相当的损耗。因此可以使用一种不可改变的对象,依靠其不变形来确保并行操作在没有同步的情况下依旧保持一致性和正确性。 不变模式的使用场景主要包括两个条件: a. 当对象创建后,其内部状态和数据不再发生任何改变;b.对象...

1. 不变模式的核心思想

在并行开发过程中,为确保数据的一致性和正确性,又必要对对象进行同步,但是同步操作对系统性能有相当的损耗。因此可以使用一种不可改变的对象,依靠其不变形来确保并行操作在没有同步的情况下依旧保持一致性和正确性。

不变模式的使用场景主要包括两个条件:

  • a. 当对象创建后,其内部状态和数据不再发生任何改变;
  • b.对象需求被共享、被多线程频繁访问。

2. 不变模式的Java实现

在Java语言中,不变模式的实现很简单,只需要注意一下4点:

  • a. 去除所有setter方法以及可以修改自身属性的方法;
  • b. 将所有属性设置为private的,并用final标记,确保其不可修改;
  • c. 确保没有子类可以继承该类;
  • d. 有一个可以创建完整对象的构造函数。

  
  1. public final class Product { //final可以确保不会被继承
  2. private final String a; //private确保不可被访问,final确保不可被修改
  3. private final String b;
  4. private final double c;
  5. public Product(String a, String b, double c) {
  6. //创建对象时必须指定值,因为创建后将无法修改
  7. this.a = a;
  8. this.b = b;
  9. this.c = c;
  10. }
  11. public String getA() {
  12. return a;
  13. }
  14. public String getB() {
  15. return b;
  16. }
  17. public double getC() {
  18. return c;
  19. }
  20. }

文章来源: springlearn.blog.csdn.net,作者:西魏陶渊明,版权归原作者所有,如需转载,请联系作者。

原文链接:springlearn.blog.csdn.net/article/details/102425333

【版权声明】本文为华为云社区用户转载文章,如果您发现本社区中有涉嫌抄袭的内容,欢迎发送邮件进行举报,并提供相关证据,一经查实,本社区将立刻删除涉嫌侵权内容,举报邮箱: cloudbbs@huaweicloud.com
  • 点赞
  • 收藏
  • 关注作者

评论(0

0/1000
抱歉,系统识别当前为高风险访问,暂不支持该操作

全部回复

上滑加载中

设置昵称

在此一键设置昵称,即可参与社区互动!

*长度不超过10个汉字或20个英文字符,设置后3个月内不可修改。

*长度不超过10个汉字或20个英文字符,设置后3个月内不可修改。