Hi ShardingSphere community,


Now, We are refactoring ShardingSphere’s orchestration module. We have some 
problems and want to discuss with community.


For Apollo as a ConfigCenter, I want to construct a “ConfigTreeNode” class for 
representing the relationships between all config keys and it’s childrenkeys, 
and the ConfigTreeNode class define a init() method for initialize 
the relationships.


If we want to init the ConfigTree, we can call the init() method like this:


ConfigTreeNode root = new ConfigTreeNode(param1, param2, param3);
root.init(param4, param5);


Some developer think this isn’t a good practice, want to combine two lines of 
code into one line.


We discuss some code styles:


1. "ConfigTreeNodeFactory.init(param4, param5)”, but it must define another 
ConfigTreeNodeFactory class;


2. "new ConfigTreeNode(param1, param2, param3).init(param4, param5)";


3. Auto call init() method in ConfigTreeNode’ constructor method, and caller 
doesn’t care of it.


Which does a good idea and do you have other good suggestions? 


Thanks!
Zonglei Dong
Apache ShardingSphere

Reply via email to