ZH version is available. Content is displayed in original English for accuracy.
Advertisement
Advertisement
⚡ Community Insights
Discussion Sentiment
75% Positive
Analyzed from 230 words in the discussion.
Trending Topics
#manager#etc#type#whether#agree#connection#handles#between#connectionmanager#connections

Discussion (5 Comments)Read Original on HackerNews
A "Connection" handles all interaction between two nodes. No argument there.
A "ConnectionManager" handles all the housekeeping to do with the connections - whether there's a limit on connections, whether there's external API that influences behaviour, whether there's resource allocation to split between them and the policy for that, etc. etc. Basically all the things that a more holistic view of the system demands.
There's nothing wrong with a Manager-type class, as long as its task is management of that type. It shouldn't conflate the connection functionality as its own, I agree with that much, but there are two very distinct concepts being modelled here, by different classes.
The contract I expect it to keep is (as I said above) the holistic view of the system of <item>s that it's managing. That can vary from type to type, but trying to pin down a class to just the exact thing it does is a fools errand (again, IMHO); there is a level of abstraction in naming that is somewhat above the code itself. Manager is the hint, the code is the truth.
YMMV I guess. It's worked pretty well for me for the past 40 years or so :)