SOLID break class












0














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?










share|improve this question






















  • 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
















0














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?










share|improve this question






















  • 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














0












0








0







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?










share|improve this question













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






share|improve this question













share|improve this question











share|improve this question




share|improve this question










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


















  • 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










2 Answers
2






active

oldest

votes


















4














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.






share|improve this answer

















  • 1




    IF OP decides to split up into two classes, this is an excellent plan.
    – user949300
    2 hours ago



















2














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.






share|improve this answer





















    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
    });


    }
    });














    draft saved

    draft discarded


















    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









    4














    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.






    share|improve this answer

















    • 1




      IF OP decides to split up into two classes, this is an excellent plan.
      – user949300
      2 hours ago
















    4














    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.






    share|improve this answer

















    • 1




      IF OP decides to split up into two classes, this is an excellent plan.
      – user949300
      2 hours ago














    4












    4








    4






    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.






    share|improve this answer












    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.







    share|improve this answer












    share|improve this answer



    share|improve this answer










    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














    • 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













    2














    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.






    share|improve this answer


























      2














      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.






      share|improve this answer
























        2












        2








        2






        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.






        share|improve this answer












        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.







        share|improve this answer












        share|improve this answer



        share|improve this answer










        answered 2 hours ago









        gnasher729

        19.8k22558




        19.8k22558






























            draft saved

            draft discarded




















































            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.




            draft saved


            draft discarded














            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





















































            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







            Popular posts from this blog

            Accessing regular linux commands in Huawei's Dopra Linux

            Can't connect RFCOMM socket: Host is down

            Kernel panic - not syncing: Fatal Exception in Interrupt