SOLID break class
I have a legacy class XMLReaderWriter which I think I should break into two classes so that it doesn't break the SRP. Unfortunately the class is already in production and I have to maintain backwards compatibility. What would be the best way to go about this? Any relevant design patterns that I should use?
c# object-oriented-design
add a comment |
I have a legacy class XMLReaderWriter which I think I should break into two classes so that it doesn't break the SRP. Unfortunately the class is already in production and I have to maintain backwards compatibility. What would be the best way to go about this? Any relevant design patterns that I should use?
c# object-oriented-design
It not violate SOLID, and SRP particularly. Because if you make changes in a Writer part you must make changes in a Reader part as well. So keeping both in one class is totally SRP compliant. If I am wrong show the code then ;)
– Fabio
3 hours ago
2
Whens the last time you had to make changes to the XML class? How many of those times was it a major hassle? Is changing this class going to solve a practical problem?
– whatsisname
2 hours ago
add a comment |
I have a legacy class XMLReaderWriter which I think I should break into two classes so that it doesn't break the SRP. Unfortunately the class is already in production and I have to maintain backwards compatibility. What would be the best way to go about this? Any relevant design patterns that I should use?
c# object-oriented-design
I have a legacy class XMLReaderWriter which I think I should break into two classes so that it doesn't break the SRP. Unfortunately the class is already in production and I have to maintain backwards compatibility. What would be the best way to go about this? Any relevant design patterns that I should use?
c# object-oriented-design
c# object-oriented-design
asked 3 hours ago
user66734
412
412
It not violate SOLID, and SRP particularly. Because if you make changes in a Writer part you must make changes in a Reader part as well. So keeping both in one class is totally SRP compliant. If I am wrong show the code then ;)
– Fabio
3 hours ago
2
Whens the last time you had to make changes to the XML class? How many of those times was it a major hassle? Is changing this class going to solve a practical problem?
– whatsisname
2 hours ago
add a comment |
It not violate SOLID, and SRP particularly. Because if you make changes in a Writer part you must make changes in a Reader part as well. So keeping both in one class is totally SRP compliant. If I am wrong show the code then ;)
– Fabio
3 hours ago
2
Whens the last time you had to make changes to the XML class? How many of those times was it a major hassle? Is changing this class going to solve a practical problem?
– whatsisname
2 hours ago
It not violate SOLID, and SRP particularly. Because if you make changes in a Writer part you must make changes in a Reader part as well. So keeping both in one class is totally SRP compliant. If I am wrong show the code then ;)
– Fabio
3 hours ago
It not violate SOLID, and SRP particularly. Because if you make changes in a Writer part you must make changes in a Reader part as well. So keeping both in one class is totally SRP compliant. If I am wrong show the code then ;)
– Fabio
3 hours ago
2
2
Whens the last time you had to make changes to the XML class? How many of those times was it a major hassle? Is changing this class going to solve a practical problem?
– whatsisname
2 hours ago
Whens the last time you had to make changes to the XML class? How many of those times was it a major hassle? Is changing this class going to solve a practical problem?
– whatsisname
2 hours ago
add a comment |
2 Answers
2
active
oldest
votes
Without code we can't validate the violation, or give specific answers, but from the sounds of it I would suggest having your SRP-compliant XMLReader and XMLWriter classes, and update the current XMLReaderWriter to simply be a facade, outsourcing all of it's logic to your 2 new classes.
1
IF OP decides to split up into two classes, this is an excellent plan.
– user949300
2 hours ago
add a comment |
I'd like to know what problems this class is actually causing you. The "Single Responsibility Principle" is one of the most misunderstood, and lots of time has been wasted by placating it.
In other words, "violating the single responsibility principle" on its own is not a reason to spend any time. Wait until it causes you actual problems.
add a comment |
Your Answer
StackExchange.ready(function() {
var channelOptions = {
tags: "".split(" "),
id: "131"
};
initTagRenderer("".split(" "), "".split(" "), channelOptions);
StackExchange.using("externalEditor", function() {
// Have to fire editor after snippets, if snippets enabled
if (StackExchange.settings.snippets.snippetsEnabled) {
StackExchange.using("snippets", function() {
createEditor();
});
}
else {
createEditor();
}
});
function createEditor() {
StackExchange.prepareEditor({
heartbeatType: 'answer',
autoActivateHeartbeat: false,
convertImagesToLinks: false,
noModals: true,
showLowRepImageUploadWarning: true,
reputationToPostImages: null,
bindNavPrevention: true,
postfix: "",
imageUploader: {
brandingHtml: "Powered by u003ca class="icon-imgur-white" href="https://imgur.com/"u003eu003c/au003e",
contentPolicyHtml: "User contributions licensed under u003ca href="https://creativecommons.org/licenses/by-sa/3.0/"u003ecc by-sa 3.0 with attribution requiredu003c/au003e u003ca href="https://stackoverflow.com/legal/content-policy"u003e(content policy)u003c/au003e",
allowUrls: true
},
onDemand: true,
discardSelector: ".discard-answer"
,immediatelyShowMarkdownHelp:true
});
}
});
Sign up or log in
StackExchange.ready(function () {
StackExchange.helpers.onClickDraftSave('#login-link');
});
Sign up using Google
Sign up using Facebook
Sign up using Email and Password
Post as a guest
Required, but never shown
StackExchange.ready(
function () {
StackExchange.openid.initPostLogin('.new-post-login', 'https%3a%2f%2fsoftwareengineering.stackexchange.com%2fquestions%2f384479%2fsolid-break-class%23new-answer', 'question_page');
}
);
Post as a guest
Required, but never shown
2 Answers
2
active
oldest
votes
2 Answers
2
active
oldest
votes
active
oldest
votes
active
oldest
votes
Without code we can't validate the violation, or give specific answers, but from the sounds of it I would suggest having your SRP-compliant XMLReader and XMLWriter classes, and update the current XMLReaderWriter to simply be a facade, outsourcing all of it's logic to your 2 new classes.
1
IF OP decides to split up into two classes, this is an excellent plan.
– user949300
2 hours ago
add a comment |
Without code we can't validate the violation, or give specific answers, but from the sounds of it I would suggest having your SRP-compliant XMLReader and XMLWriter classes, and update the current XMLReaderWriter to simply be a facade, outsourcing all of it's logic to your 2 new classes.
1
IF OP decides to split up into two classes, this is an excellent plan.
– user949300
2 hours ago
add a comment |
Without code we can't validate the violation, or give specific answers, but from the sounds of it I would suggest having your SRP-compliant XMLReader and XMLWriter classes, and update the current XMLReaderWriter to simply be a facade, outsourcing all of it's logic to your 2 new classes.
Without code we can't validate the violation, or give specific answers, but from the sounds of it I would suggest having your SRP-compliant XMLReader and XMLWriter classes, and update the current XMLReaderWriter to simply be a facade, outsourcing all of it's logic to your 2 new classes.
answered 3 hours ago
Adam Bates
1123
1123
1
IF OP decides to split up into two classes, this is an excellent plan.
– user949300
2 hours ago
add a comment |
1
IF OP decides to split up into two classes, this is an excellent plan.
– user949300
2 hours ago
1
1
IF OP decides to split up into two classes, this is an excellent plan.
– user949300
2 hours ago
IF OP decides to split up into two classes, this is an excellent plan.
– user949300
2 hours ago
add a comment |
I'd like to know what problems this class is actually causing you. The "Single Responsibility Principle" is one of the most misunderstood, and lots of time has been wasted by placating it.
In other words, "violating the single responsibility principle" on its own is not a reason to spend any time. Wait until it causes you actual problems.
add a comment |
I'd like to know what problems this class is actually causing you. The "Single Responsibility Principle" is one of the most misunderstood, and lots of time has been wasted by placating it.
In other words, "violating the single responsibility principle" on its own is not a reason to spend any time. Wait until it causes you actual problems.
add a comment |
I'd like to know what problems this class is actually causing you. The "Single Responsibility Principle" is one of the most misunderstood, and lots of time has been wasted by placating it.
In other words, "violating the single responsibility principle" on its own is not a reason to spend any time. Wait until it causes you actual problems.
I'd like to know what problems this class is actually causing you. The "Single Responsibility Principle" is one of the most misunderstood, and lots of time has been wasted by placating it.
In other words, "violating the single responsibility principle" on its own is not a reason to spend any time. Wait until it causes you actual problems.
answered 2 hours ago
gnasher729
19.8k22558
19.8k22558
add a comment |
add a comment |
Thanks for contributing an answer to Software Engineering Stack Exchange!
- Please be sure to answer the question. Provide details and share your research!
But avoid …
- Asking for help, clarification, or responding to other answers.
- Making statements based on opinion; back them up with references or personal experience.
To learn more, see our tips on writing great answers.
Some of your past answers have not been well-received, and you're in danger of being blocked from answering.
Please pay close attention to the following guidance:
- Please be sure to answer the question. Provide details and share your research!
But avoid …
- Asking for help, clarification, or responding to other answers.
- Making statements based on opinion; back them up with references or personal experience.
To learn more, see our tips on writing great answers.
Sign up or log in
StackExchange.ready(function () {
StackExchange.helpers.onClickDraftSave('#login-link');
});
Sign up using Google
Sign up using Facebook
Sign up using Email and Password
Post as a guest
Required, but never shown
StackExchange.ready(
function () {
StackExchange.openid.initPostLogin('.new-post-login', 'https%3a%2f%2fsoftwareengineering.stackexchange.com%2fquestions%2f384479%2fsolid-break-class%23new-answer', 'question_page');
}
);
Post as a guest
Required, but never shown
Sign up or log in
StackExchange.ready(function () {
StackExchange.helpers.onClickDraftSave('#login-link');
});
Sign up using Google
Sign up using Facebook
Sign up using Email and Password
Post as a guest
Required, but never shown
Sign up or log in
StackExchange.ready(function () {
StackExchange.helpers.onClickDraftSave('#login-link');
});
Sign up using Google
Sign up using Facebook
Sign up using Email and Password
Post as a guest
Required, but never shown
Sign up or log in
StackExchange.ready(function () {
StackExchange.helpers.onClickDraftSave('#login-link');
});
Sign up using Google
Sign up using Facebook
Sign up using Email and Password
Sign up using Google
Sign up using Facebook
Sign up using Email and Password
Post as a guest
Required, but never shown
Required, but never shown
Required, but never shown
Required, but never shown
Required, but never shown
Required, but never shown
Required, but never shown
Required, but never shown
Required, but never shown
It not violate SOLID, and SRP particularly. Because if you make changes in a Writer part you must make changes in a Reader part as well. So keeping both in one class is totally SRP compliant. If I am wrong show the code then ;)
– Fabio
3 hours ago
2
Whens the last time you had to make changes to the XML class? How many of those times was it a major hassle? Is changing this class going to solve a practical problem?
– whatsisname
2 hours ago