作家
登录

记录自己理解的一些设计模式

作者: 来源: 2017-04-08 19:03:08 阅读 我要评论

  • metricsObserable.addObserver(new AdminA()); 
  • metricsObserable.addObserver(new AdminB()); 
  • metricsObserable.updateCounter("request-count", 100l); 
  • 不雅察者设计模式

    不雅察者设计模式重要的应用处景在于一个对象变更之后,依附该对象的对象会收到通知。典范的例子就是rss的订阅,当订阅了博客的rss之后,当博客更新之后,订阅┞愤就会收到新的订阅信息。

    jdk内置供给了Observable和Observer,用来实现不雅察者模式:

    1. // 定义一个Observable  
    2. public class MetricsObserable extends Observable {  
    3. private Map counterMap = new HashMap<>();  
    4. public void updateCounter(String key, Long value) {  
    5. counterMap.put(key, value);  
    6. setChanged();  
    7. notifyObservers(counterMap);  
    8.  
    9.  
    10. // Observer  
    11. public class AdminA implements Observer {  
    12. @Override  
    13. public void update(Observable o, Object arg) {  
    14. System.out.println("adminA: " + arg);  
    15.  
    16.  
    17. public class AdminB implements Observer {  
    18. @Override  
    19. public void update(Observable o, Object arg) {  
    20. System.out.println("adminB: " + arg);  
    21.  

    测试:

    1. MetricsObserable metricsObserable = new MetricsObserable();  
    2. metricsObserable.addObserver(new AdminA());  
    3. metricsObserable.addObserver(new AdminB());  
    4. metricsObserable.updateCounter("request-count", 100l); 

    打印出:

    1. adminB: {request-count=100}  
    2. adminA: {request-count=100} 

    线程池中会构造几个核心线程用于处理,这些线程会去取壅塞队列里的义务然落后行履行。这些线程就是会被共享、且被反复应用的。因为线程的创建、烧毁、调剂都是须要消费资本的,没有需液每次创建新的线程,而是共用一些线程。这就是享元模式的应用。类似的还有jdbc连接池,对象池等。

    外不雅模式用来包装一组接口用于便利应用。 比如体系平分10个模块,有个功能须要组合应用所有的模块,这个时刻就须要一个包装类包装这10个接口,然落后行营业逻辑的调用。

    之前有一次面试被问到:

    1. Integer.valueOf("1") == Integer

        推荐阅读

        人工智能技术是基于大数据吃饭的?

      自负年夜 Google 的人工智能 AlphaGO 成为围棋界的百胜将近开端,AI(Artificial Intelligence,人工智能)这两个英文字,刹那间成为科技业最热点的关键字之一。而就在2017岁首?年代,早在>>>详细阅读


      本文标题:记录自己理解的一些设计模式

      地址:http://www.17bianji.com/lsqh/34663.html

    关键词: 探索发现

    乐购科技部分新闻及文章转载自互联网,供读者交流和学习,若有涉及作者版权等问题请及时与我们联系,以便更正、删除或按规定办理。感谢所有提供资讯的网站,欢迎各类媒体与乐购科技进行文章共享合作。

    网友点评
    自媒体专栏

    评论

    热度

    精彩导读
    栏目ID=71的表不存在(操作类型=0)