Code Monkey home page Code Monkey logo

designpatterns's Introduction

写在前面

主要内容

为了更系统的学习设计模式,特地开了这样一个基于Java的设计模式【集中营】,都是笔者在实际工作中用到过或者学习过的一些设计模式的一些提炼或者总检。慢慢地初见规模,也有几个朋友给我点鼓励,给了star。本文工程主要计划以下几大块,希望大家也可以一起加入进来,扩大Java设计模式这块的运用场景的提炼。

  1. 设计模式简介:主要介绍各种设计模式的概念和运用场景等
  2. 设计模式综合运用:主要是笔者在实际工作中运用到的一些设计模式综合运用事例的提炼
  3. Spring设计模式简介:主要是讲述Spring源码中运用到的一些设计模式(将来增加)
  4. Ibatis设计模式简介:主要是讲述Ibatis源码中运用到的一些设计模式(将来增加)

分享说明

本文所有文档和代码为笔者亲测可用,部分来源于网络(主要是【设计模式简介】模块,如有侵权,请联系笔者),如果大家有任何问题,都可以提交issue,或者提交PR等。

设计模式简介

设计模式综合运用

Spring Framework设计模式

designpatterns's People

Contributors

landy8530 avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

designpatterns's Issues

DefaultKeyIdentificationChain 中的index是否会有线程安全问题?

您好,最近我们团队在做一些与责任链相关的coding,拜读了您的源码,深受启发,感谢!

DefaultKeyIdentificationChain.java在匹配对应的KeyIdentification时:

   List<KeyIdentification> identifications = identifyMap.get(workflowId);
    if(identifyIndexMap.containsKey(workflowId)) {
        index = identifyIndexMap.get(workflowId) == null ? 0 : identifyIndexMap.get(workflowId);
    } else {
        index = 0;
    }

    if(index == identifications.size()) return IdentificationResultType.NO_MATCH;

    KeyIdentification keyIdentification = identifications.get(index);
    index ++;

    identifyIndexMap.put(workflowId,index);

    return keyIdentification.doIdentify(identifyCriterion,this);

当多个线程同时进行doIdentify()时,线程之间的index++是否会受到干扰?望指教!我们目前在这个地方使用ThreadLocal处理,是否有这个必要?

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.