What are good strategies for organizing single class per query service layer?
Posted
by
KallDrexx
on Stack Overflow
See other posts from Stack Overflow
or by KallDrexx
Published on 2011-01-11T02:47:31Z
Indexed on
2011/01/11
2:54 UTC
Read the original article
Hit count: 240
Right now my Asp.net MVC application is structured as Controller -> Services -> Repositories. The services consist of aggregate root classes that contain methods. Each method is a specific operation that gets performed, such as retrieving a list of projects, adding a new project, or searching for a project etc. The problem with this is that my service classes are becoming really fat with a lot of methods. As of right now I am separating methods out into categories separated by #region
tags, but this is quickly becoming out of control. I can definitely see it becoming hard to determine what functionality already exists and where modifications need to go.
Since each method in the service classes are isolated and don't really interact with each other, they really could be more stand alone. After reading some articles, such as this, I am thinking of following the single query per class model, as it seems like a more organized solution. Instead of trying to figure out what class and method you need to call to perform an operation, you just have to figure out the class.
My only reservation with the single query per class method is that I need some way to organize the 50+ classes I will end up with. Does anyone have any suggestions for strategies to best organize this type of pattern?
© Stack Overflow or respective owner