{"id":21900,"date":"2022-11-16T14:59:46","date_gmt":"2022-11-16T09:29:46","guid":{"rendered":"https:\/\/jassweb.com\/solved\/solved-violating-single-responsibility-principle-and-static-methods-closed\/"},"modified":"2022-11-16T14:59:46","modified_gmt":"2022-11-16T09:29:46","slug":"solved-violating-single-responsibility-principle-and-static-methods-closed","status":"publish","type":"post","link":"https:\/\/jassweb.com\/solved\/solved-violating-single-responsibility-principle-and-static-methods-closed\/","title":{"rendered":"[Solved] Violating Single Responsibility Principle and static methods [closed]"},"content":{"rendered":"<p> [ad_1]<br \/>\n<\/p>\n<div id=\"answer-45598579\" class=\"answer js-answer accepted-answer js-accepted-answer\" data-answerid=\"45598579\" data-parentid=\"45598275\" data-score=\"2\" data-position-on-page=\"1\" data-highest-scored=\"1\" data-question-has-accepted-highest-score=\"1\" itemprop=\"acceptedAnswer\" itemscope itemtype=\"https:\/\/schema.org\/Answer\">\n<div class=\"post-layout\">\n<div class=\"votecell post-layout--left\"><\/div>\n<div class=\"answercell post-layout--right\">\n<div class=\"s-prose js-post-body\" itemprop=\"text\">\n<p>A few random thoughts.<\/p>\n<p>(a) Can you even pin down <strong><em>precisely<\/em><\/strong> what it means for a class to have some &#8220;responsibility&#8221; ???  And subsequently, if (as I suspect) all you have is vague notions without any formally observable \/ measurable properties \/ characteristics to pin down the meaning of &#8220;responsibility&#8221;, then how can you say as unequivocally as you do that what you have is violating it ?<br \/>\n(b) If your application grows large enough or you want certain advanced means (JMX) to interact with your running application, you will split &#8220;MyEngine&#8221; and &#8220;StartMyEngine&#8221; just naturally as you go.  Methinks.  If your application is not large\/advanced\/complex\/critical\/&#8230; enough, then not having that split will not matter much.<br \/>\n(c) Every instance method M(args) is the semantic equivalent of a static method SM that has all of args plus an argument of the type of the instance.  So an instance method M() on class Foo is equivalent to a static method SM(Foo foo).  This starts to reveal <strong><em>why<\/em><\/strong> your static print method &#8220;does not belong&#8221; in class BlackJackGame : it does not have any argument of type BlackJackGame and therefore cannot ever be said to relate in any way to the BlackJackGame type.  Fundamentally speaking the same holds of course for main(String[]) but in that case its usage has become a common pattern, and moreover, there <em>has<\/em> to be an entry point somewhere somehow otherwise no java process could ever get started at all.<\/p>\n<\/p><\/div>\n<div class=\"mt24\"><\/div>\n<\/div>\n<p>            <span class=\"d-none\" itemprop=\"commentCount\">7<\/span> <\/p><\/div>\n<\/div>\n<p>[ad_2]<\/p>\n<p>solved Violating Single Responsibility Principle and static methods [closed] <\/p>\n","protected":false},"excerpt":{"rendered":"<p>[ad_1] A few random thoughts. (a) Can you even pin down precisely what it means for a class to have some &#8220;responsibility&#8221; ??? And subsequently, if (as I suspect) all you have is vague notions without any formally observable \/ measurable properties \/ characteristics to pin down the meaning of &#8220;responsibility&#8221;, then how can you &#8230; <a title=\"[Solved] Violating Single Responsibility Principle and static methods [closed]\" class=\"read-more\" href=\"https:\/\/jassweb.com\/solved\/solved-violating-single-responsibility-principle-and-static-methods-closed\/\" aria-label=\"More on [Solved] Violating Single Responsibility Principle and static methods [closed]\">Read more<\/a><\/p>\n","protected":false},"author":1,"featured_media":0,"comment_status":"closed","ping_status":"closed","sticky":false,"template":"","format":"standard","meta":{"footnotes":""},"categories":[320],"tags":[323,547,4953],"class_list":["post-21900","post","type-post","status-publish","format-standard","hentry","category-solved","tag-java","tag-oop","tag-single-responsibility-principle"],"yoast_head":"<!-- This site is optimized with the Yoast SEO plugin v26.5 - https:\/\/yoast.com\/wordpress\/plugins\/seo\/ -->\n<title>[Solved] Violating Single Responsibility Principle and static methods [closed] - JassWeb<\/title>\n<meta name=\"robots\" content=\"index, follow, max-snippet:-1, max-image-preview:large, max-video-preview:-1\" \/>\n<link rel=\"canonical\" href=\"https:\/\/jassweb.com\/solved\/solved-violating-single-responsibility-principle-and-static-methods-closed\/\" \/>\n<meta property=\"og:locale\" content=\"en_US\" \/>\n<meta property=\"og:type\" content=\"article\" \/>\n<meta property=\"og:title\" content=\"[Solved] Violating Single Responsibility Principle and static methods [closed] - JassWeb\" \/>\n<meta property=\"og:description\" content=\"[ad_1] A few random thoughts. (a) Can you even pin down precisely what it means for a class to have some &#8220;responsibility&#8221; ??? And subsequently, if (as I suspect) all you have is vague notions without any formally observable \/ measurable properties \/ characteristics to pin down the meaning of &#8220;responsibility&#8221;, then how can you ... Read more\" \/>\n<meta property=\"og:url\" content=\"https:\/\/jassweb.com\/solved\/solved-violating-single-responsibility-principle-and-static-methods-closed\/\" \/>\n<meta property=\"og:site_name\" content=\"JassWeb\" \/>\n<meta property=\"article:published_time\" content=\"2022-11-16T09:29:46+00:00\" \/>\n<meta name=\"author\" content=\"Kirat\" \/>\n<meta name=\"twitter:card\" content=\"summary_large_image\" \/>\n<meta name=\"twitter:label1\" content=\"Written by\" \/>\n\t<meta name=\"twitter:data1\" content=\"Kirat\" \/>\n\t<meta name=\"twitter:label2\" content=\"Est. reading time\" \/>\n\t<meta name=\"twitter:data2\" content=\"1 minute\" \/>\n<script type=\"application\/ld+json\" class=\"yoast-schema-graph\">{\"@context\":\"https:\/\/schema.org\",\"@graph\":[{\"@type\":\"Article\",\"@id\":\"https:\/\/jassweb.com\/solved\/solved-violating-single-responsibility-principle-and-static-methods-closed\/#article\",\"isPartOf\":{\"@id\":\"https:\/\/jassweb.com\/solved\/solved-violating-single-responsibility-principle-and-static-methods-closed\/\"},\"author\":{\"name\":\"Kirat\",\"@id\":\"https:\/\/jassweb.com\/solved\/#\/schema\/person\/65c9c7b7958150c0dc8371fa35dd7c31\"},\"headline\":\"[Solved] Violating Single Responsibility Principle and static methods [closed]\",\"datePublished\":\"2022-11-16T09:29:46+00:00\",\"mainEntityOfPage\":{\"@id\":\"https:\/\/jassweb.com\/solved\/solved-violating-single-responsibility-principle-and-static-methods-closed\/\"},\"wordCount\":262,\"publisher\":{\"@id\":\"https:\/\/jassweb.com\/solved\/#organization\"},\"keywords\":[\"java\",\"oop\",\"single-responsibility-principle\"],\"articleSection\":[\"Solved\"],\"inLanguage\":\"en-US\"},{\"@type\":\"WebPage\",\"@id\":\"https:\/\/jassweb.com\/solved\/solved-violating-single-responsibility-principle-and-static-methods-closed\/\",\"url\":\"https:\/\/jassweb.com\/solved\/solved-violating-single-responsibility-principle-and-static-methods-closed\/\",\"name\":\"[Solved] Violating Single Responsibility Principle and static methods [closed] - JassWeb\",\"isPartOf\":{\"@id\":\"https:\/\/jassweb.com\/solved\/#website\"},\"datePublished\":\"2022-11-16T09:29:46+00:00\",\"breadcrumb\":{\"@id\":\"https:\/\/jassweb.com\/solved\/solved-violating-single-responsibility-principle-and-static-methods-closed\/#breadcrumb\"},\"inLanguage\":\"en-US\",\"potentialAction\":[{\"@type\":\"ReadAction\",\"target\":[\"https:\/\/jassweb.com\/solved\/solved-violating-single-responsibility-principle-and-static-methods-closed\/\"]}]},{\"@type\":\"BreadcrumbList\",\"@id\":\"https:\/\/jassweb.com\/solved\/solved-violating-single-responsibility-principle-and-static-methods-closed\/#breadcrumb\",\"itemListElement\":[{\"@type\":\"ListItem\",\"position\":1,\"name\":\"Home\",\"item\":\"https:\/\/jassweb.com\/solved\/\"},{\"@type\":\"ListItem\",\"position\":2,\"name\":\"[Solved] Violating Single Responsibility Principle and static methods [closed]\"}]},{\"@type\":\"WebSite\",\"@id\":\"https:\/\/jassweb.com\/solved\/#website\",\"url\":\"https:\/\/jassweb.com\/solved\/\",\"name\":\"JassWeb\",\"description\":\"Build High-quality Websites\",\"publisher\":{\"@id\":\"https:\/\/jassweb.com\/solved\/#organization\"},\"potentialAction\":[{\"@type\":\"SearchAction\",\"target\":{\"@type\":\"EntryPoint\",\"urlTemplate\":\"https:\/\/jassweb.com\/solved\/?s={search_term_string}\"},\"query-input\":{\"@type\":\"PropertyValueSpecification\",\"valueRequired\":true,\"valueName\":\"search_term_string\"}}],\"inLanguage\":\"en-US\"},{\"@type\":\"Organization\",\"@id\":\"https:\/\/jassweb.com\/solved\/#organization\",\"name\":\"Jass Web\",\"url\":\"https:\/\/jassweb.com\/solved\/\",\"logo\":{\"@type\":\"ImageObject\",\"inLanguage\":\"en-US\",\"@id\":\"https:\/\/jassweb.com\/solved\/#\/schema\/logo\/image\/\",\"url\":\"https:\/\/jassweb.com\/wp-content\/uploads\/2021\/02\/jass-website-logo-1.png\",\"contentUrl\":\"https:\/\/jassweb.com\/wp-content\/uploads\/2021\/02\/jass-website-logo-1.png\",\"width\":693,\"height\":132,\"caption\":\"Jass Web\"},\"image\":{\"@id\":\"https:\/\/jassweb.com\/solved\/#\/schema\/logo\/image\/\"}},{\"@type\":\"Person\",\"@id\":\"https:\/\/jassweb.com\/solved\/#\/schema\/person\/65c9c7b7958150c0dc8371fa35dd7c31\",\"name\":\"Kirat\",\"image\":{\"@type\":\"ImageObject\",\"inLanguage\":\"en-US\",\"@id\":\"https:\/\/jassweb.com\/solved\/#\/schema\/person\/image\/\",\"url\":\"https:\/\/jassweb.com\/solved\/wp-content\/litespeed\/avatar\/1261af3c9451399fa1336d28b98ea3bb.jpg?ver=1775193939\",\"contentUrl\":\"https:\/\/jassweb.com\/solved\/wp-content\/litespeed\/avatar\/1261af3c9451399fa1336d28b98ea3bb.jpg?ver=1775193939\",\"caption\":\"Kirat\"},\"sameAs\":[\"http:\/\/jassweb.com\"],\"url\":\"https:\/\/jassweb.com\/solved\/author\/jaspritsinghghumangmail-com\/\"}]}<\/script>\n<!-- \/ Yoast SEO plugin. -->","yoast_head_json":{"title":"[Solved] Violating Single Responsibility Principle and static methods [closed] - JassWeb","robots":{"index":"index","follow":"follow","max-snippet":"max-snippet:-1","max-image-preview":"max-image-preview:large","max-video-preview":"max-video-preview:-1"},"canonical":"https:\/\/jassweb.com\/solved\/solved-violating-single-responsibility-principle-and-static-methods-closed\/","og_locale":"en_US","og_type":"article","og_title":"[Solved] Violating Single Responsibility Principle and static methods [closed] - JassWeb","og_description":"[ad_1] A few random thoughts. (a) Can you even pin down precisely what it means for a class to have some &#8220;responsibility&#8221; ??? And subsequently, if (as I suspect) all you have is vague notions without any formally observable \/ measurable properties \/ characteristics to pin down the meaning of &#8220;responsibility&#8221;, then how can you ... Read more","og_url":"https:\/\/jassweb.com\/solved\/solved-violating-single-responsibility-principle-and-static-methods-closed\/","og_site_name":"JassWeb","article_published_time":"2022-11-16T09:29:46+00:00","author":"Kirat","twitter_card":"summary_large_image","twitter_misc":{"Written by":"Kirat","Est. reading time":"1 minute"},"schema":{"@context":"https:\/\/schema.org","@graph":[{"@type":"Article","@id":"https:\/\/jassweb.com\/solved\/solved-violating-single-responsibility-principle-and-static-methods-closed\/#article","isPartOf":{"@id":"https:\/\/jassweb.com\/solved\/solved-violating-single-responsibility-principle-and-static-methods-closed\/"},"author":{"name":"Kirat","@id":"https:\/\/jassweb.com\/solved\/#\/schema\/person\/65c9c7b7958150c0dc8371fa35dd7c31"},"headline":"[Solved] Violating Single Responsibility Principle and static methods [closed]","datePublished":"2022-11-16T09:29:46+00:00","mainEntityOfPage":{"@id":"https:\/\/jassweb.com\/solved\/solved-violating-single-responsibility-principle-and-static-methods-closed\/"},"wordCount":262,"publisher":{"@id":"https:\/\/jassweb.com\/solved\/#organization"},"keywords":["java","oop","single-responsibility-principle"],"articleSection":["Solved"],"inLanguage":"en-US"},{"@type":"WebPage","@id":"https:\/\/jassweb.com\/solved\/solved-violating-single-responsibility-principle-and-static-methods-closed\/","url":"https:\/\/jassweb.com\/solved\/solved-violating-single-responsibility-principle-and-static-methods-closed\/","name":"[Solved] Violating Single Responsibility Principle and static methods [closed] - JassWeb","isPartOf":{"@id":"https:\/\/jassweb.com\/solved\/#website"},"datePublished":"2022-11-16T09:29:46+00:00","breadcrumb":{"@id":"https:\/\/jassweb.com\/solved\/solved-violating-single-responsibility-principle-and-static-methods-closed\/#breadcrumb"},"inLanguage":"en-US","potentialAction":[{"@type":"ReadAction","target":["https:\/\/jassweb.com\/solved\/solved-violating-single-responsibility-principle-and-static-methods-closed\/"]}]},{"@type":"BreadcrumbList","@id":"https:\/\/jassweb.com\/solved\/solved-violating-single-responsibility-principle-and-static-methods-closed\/#breadcrumb","itemListElement":[{"@type":"ListItem","position":1,"name":"Home","item":"https:\/\/jassweb.com\/solved\/"},{"@type":"ListItem","position":2,"name":"[Solved] Violating Single Responsibility Principle and static methods [closed]"}]},{"@type":"WebSite","@id":"https:\/\/jassweb.com\/solved\/#website","url":"https:\/\/jassweb.com\/solved\/","name":"JassWeb","description":"Build High-quality Websites","publisher":{"@id":"https:\/\/jassweb.com\/solved\/#organization"},"potentialAction":[{"@type":"SearchAction","target":{"@type":"EntryPoint","urlTemplate":"https:\/\/jassweb.com\/solved\/?s={search_term_string}"},"query-input":{"@type":"PropertyValueSpecification","valueRequired":true,"valueName":"search_term_string"}}],"inLanguage":"en-US"},{"@type":"Organization","@id":"https:\/\/jassweb.com\/solved\/#organization","name":"Jass Web","url":"https:\/\/jassweb.com\/solved\/","logo":{"@type":"ImageObject","inLanguage":"en-US","@id":"https:\/\/jassweb.com\/solved\/#\/schema\/logo\/image\/","url":"https:\/\/jassweb.com\/wp-content\/uploads\/2021\/02\/jass-website-logo-1.png","contentUrl":"https:\/\/jassweb.com\/wp-content\/uploads\/2021\/02\/jass-website-logo-1.png","width":693,"height":132,"caption":"Jass Web"},"image":{"@id":"https:\/\/jassweb.com\/solved\/#\/schema\/logo\/image\/"}},{"@type":"Person","@id":"https:\/\/jassweb.com\/solved\/#\/schema\/person\/65c9c7b7958150c0dc8371fa35dd7c31","name":"Kirat","image":{"@type":"ImageObject","inLanguage":"en-US","@id":"https:\/\/jassweb.com\/solved\/#\/schema\/person\/image\/","url":"https:\/\/jassweb.com\/solved\/wp-content\/litespeed\/avatar\/1261af3c9451399fa1336d28b98ea3bb.jpg?ver=1775193939","contentUrl":"https:\/\/jassweb.com\/solved\/wp-content\/litespeed\/avatar\/1261af3c9451399fa1336d28b98ea3bb.jpg?ver=1775193939","caption":"Kirat"},"sameAs":["http:\/\/jassweb.com"],"url":"https:\/\/jassweb.com\/solved\/author\/jaspritsinghghumangmail-com\/"}]}},"_links":{"self":[{"href":"https:\/\/jassweb.com\/solved\/wp-json\/wp\/v2\/posts\/21900","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/jassweb.com\/solved\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/jassweb.com\/solved\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/jassweb.com\/solved\/wp-json\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/jassweb.com\/solved\/wp-json\/wp\/v2\/comments?post=21900"}],"version-history":[{"count":0,"href":"https:\/\/jassweb.com\/solved\/wp-json\/wp\/v2\/posts\/21900\/revisions"}],"wp:attachment":[{"href":"https:\/\/jassweb.com\/solved\/wp-json\/wp\/v2\/media?parent=21900"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/jassweb.com\/solved\/wp-json\/wp\/v2\/categories?post=21900"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/jassweb.com\/solved\/wp-json\/wp\/v2\/tags?post=21900"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}