19 lines
1.1 KiB
Plaintext
19 lines
1.1 KiB
Plaintext
Inheritance is certainly one of the most valuable concepts in object-oriented programming. It's a way to compartmentalize and reuse code by creating collections of attributes and behaviors called classes which can be based on previously created classes. But abusing this concept by creating a deep inheritance tree can lead to very complex and unmaintainable source code. Most of the time a too deep inheritance tree is due to bad object oriented design which has led to systematically use 'inheritance' when for instance 'composition' would suit better.
|
|
|
|
|
|
This rule raises an issue when the inheritance tree, starting from ``++Object++`` has a greater depth than is allowed.
|
|
|
|
|
|
For the parameter of the rule, the following rules are applied:
|
|
|
|
|
|
* ``++?++`` matches a single character
|
|
* ``++*++`` matches zero or more characters
|
|
* ``++**++`` matches zero or more packages
|
|
|
|
Examples:
|
|
|
|
* ``++java.fwk.AbstractFwkClass++`` will stop count when AbstractFwkClassclass is reached.
|
|
* ``++java.fwkPackage.*++`` will stop count when any member of java.internal package is reached.
|
|
* ``++java.fwkPackage.**++`` same as above, but including sub-packages.
|