Design patterns play an important role in the understanding and implementation of software design process, as well as the restoration of architecture. Consequently, the detection of a design pattern represents a pivotal problem for the comprehension of many complex software systems. However, most approaches based on graph matching are faced with search space explosions and low efficiency in terms of mining speed. To address this problem, this paper proposes an approach to mine design pattern instances in source code by degree-driven matching which is divided into two parts. The first part concerns the sub-system division, in which all the information related to detection is included in the relevant region for the data graph. The other concerns the match with the cross-validation sequence based on certain rules to obtain the instances of an effective region. Extensive experiments, using a design instance library, are conducted to evaluate the approach's performance in comparison with other tools on eight open source software projects. The results show that the proposed approach can detect design patterns more effectively than current state-of-the-art approaches.