美文网首页
四、对象的组合

四、对象的组合

作者: RainySpring | 来源:发表于2020-05-24 23:59 被阅读0次

一、设计线程安全的类
1、三个基本要素:

  • 找出构成对象状态的所有变量:理解为域(基本类型、引用)
  • 找出约束状态变量的不变性条件:用于判断状态是有效的还是无效的,eg. long value = 0 这个value域是long类型的变量,其状态空间从为Long.MIN_VALUE到Long.MAX_VALUE,但是不能为负值,这就是不可变的限制条件
  • 建立对象状态的并发性访问管理策略:就是不变性条件并发访问的情况下不被破坏

2、实例封闭
如果某对象不是线程安全的,那么可以通过多种技术使其在多线程程序中安全地使用。你可以确保该对象只能由单个线程访问(线程封闭),或者通过一个锁来保护对该对象的所有访问。

封装简化了线程安全类的实现过程,它提供了一种实例封闭机制(instance Confienement)。当一个对象被封装到另一个对象中时,能够访问被封装对象的所有代码路径都是已知的。

public class PersonSet {
   private final Set<Person> mySet = new HashSet<Person>();
   public synchronized void addPerson(Person p) {
       mySet.add(p);
   }
   public synchronized boolean containPerson(Person p) {
       return mySet.contains(p);
   }
}

3、Java监视器模式
 从线程封闭原则及其逻辑推理可以得出Java监视器模式。遵循Java监视器模式的对象会把对象的所有可变状态都封装起来,并由对象自己的内置锁来保护

public class PrivateLock {
  private final Object myLock = new Object();
  void someMethod() {
      synchronized (myLock) {
          //do something
      }
  }
}

参考:
https://www.cnblogs.com/zhaww/p/9306479.html

相关文章

  • 四、对象的组合

    一、设计线程安全的类1、三个基本要素: 找出构成对象状态的所有变量:理解为域(基本类型、引用) 找出约束状态变量的...

  • 组合模式原型解析

    组合模式定义: 组合模式,将对象组合成树形结构以表示“部分-整体”的层次结构,组合模式使得用户对单个对象和组合对象...

  • 设计模式之组合模式

    组合模式 组合模式,将对象组合成树形结构以表示“部分-整体”的层次结构,组合模式使得用户对单个对象和组合对象的使用...

  • 大话设计模式(7) --- 组合模式|迭代器模式|单例模式

    1. 组合模式 组合模式,将对象组合成树形结构以表示‘部分-整体’的层次结构。组合模式使得用户对单个对象和组合对象...

  • 第七篇 面向对象编程

    一、复习 二、time模块的补充 三、面向对象 四、初始面向对象和类 五、面向对象之间的交互 六、面向对象的组合 ...

  • 对象的组合

    在面向对象的编程中,经常用到的一种方式就是将更简单的对象组合形成复杂的对象,而复杂的对象还可以组合形成更复杂的对象...

  • Python设计模式 - 组合模式

    """ 组合模式,将对象组合成树形结构以表示“部分-整体”的层次结构,组合模式使得用户对单个对象和组合对象的使用具...

  • js里组合模式

    组合模式: 将“对象”组合成树形结构以表示“部门-整体”的层次结构,组合模式使得用户对单个对象和组合对象的使用具有...

  • 组合模式

    组合模式:将对象组合成树形结构以表示‘部分 - 整体’的层次结构。组合模式使得模式使得用户对单个对象和组合对象的使...

  • 知识整理NO.3-组合模式Composite

    组合模式Composite 背景 我们可以使用简单的对象组合成复杂的对象,而这个复杂对象有可以组合成更大的对象。我...

网友评论

      本文标题:四、对象的组合

      本文链接:https://www.haomeiwen.com/subject/lwzsahtx.html