并行模式之不变模式

1. 不变模式的核心思想

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

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

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

2. 不变模式的Java实现

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

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

    public Product(String a, String b, double c) {
        //创建对象时必须指定值,因为创建后将无法修改
        this.a = a;
        this.b = b;
        this.c = c;
    }

    public String getA() {
        return a;
    }

    public String getB() {
        return b;
    }

    public double getC() {
        return c;
    }
}


最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容

  • Spring Cloud为开发人员提供了快速构建分布式系统中一些常见模式的工具(例如配置管理,服务发现,断路器,智...
    卡卡罗2017阅读 135,083评论 19 139
  • 从三月份找实习到现在,面了一些公司,挂了不少,但最终还是拿到小米、百度、阿里、京东、新浪、CVTE、乐视家的研发岗...
    时芥蓝阅读 42,391评论 11 349
  • 国家电网公司企业标准(Q/GDW)- 面向对象的用电信息数据交换协议 - 报批稿:20170802 前言: 排版 ...
    庭说阅读 11,242评论 6 13
  • 千载孤与寂,万里谁堪同。 幽幽惆怅思,午夜惹梦回。
    内江山人阅读 279评论 1 3
  • 一把锁 一直喜欢跑步,特别是在大学的操场上,三三两两的学生意气风发,时而高谈阔论,时而追逐嬉戏,好一番青春活力的迹...
    abao02阅读 257评论 0 0