{"action":"created","issue":{"url":"https://api.github.com/repos/djstjr14/jOOQ/issues/20","repository_url":"https://api.github.com/repos/djstjr14/jOOQ","labels_url":"https://api.github.com/repos/djstjr14/jOOQ/issues/20/labels{/name}","comments_url":"https://api.github.com/repos/djstjr14/jOOQ/issues/20/comments","events_url":"https://api.github.com/repos/djstjr14/jOOQ/issues/20/events","html_url":"https://github.com/djstjr14/jOOQ/pull/20","id":330207669,"node_id":"MDExOlB1bGxSZXF1ZXN0MTkzMjcwOTg3","number":20,"title":"CompositeMethodPattern_LeeWonJun","user":{"login":"LeeWonJun0513","id":27483937,"node_id":"MDQ6VXNlcjI3NDgzOTM3","avatar_url":"https://avatars0.githubusercontent.com/u/27483937?v=4","gravatar_id":"","url":"https://api.github.com/users/LeeWonJun0513","html_url":"https://github.com/LeeWonJun0513","followers_url":"https://api.github.com/users/LeeWonJun0513/followers","following_url":"https://api.github.com/users/LeeWonJun0513/following{/other_user}","gists_url":"https://api.github.com/users/LeeWonJun0513/gists{/gist_id}","starred_url":"https://api.github.com/users/LeeWonJun0513/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/LeeWonJun0513/subscriptions","organizations_url":"https://api.github.com/users/LeeWonJun0513/orgs","repos_url":"https://api.github.com/users/LeeWonJun0513/repos","events_url":"https://api.github.com/users/LeeWonJun0513/events{/privacy}","received_events_url":"https://api.github.com/users/LeeWonJun0513/received_events","type":"User","site_admin":false},"labels":[],"state":"closed","locked":false,"assignee":null,"assignees":[],"milestone":null,"comments":0,"created_at":"2018-06-07T10:16:39Z","updated_at":"2018-06-09T10:05:28Z","closed_at":"2018-06-08T10:18:20Z","author_association":"NONE","pull_request":{"url":"https://api.github.com/repos/djstjr14/jOOQ/pulls/20","html_url":"https://github.com/djstjr14/jOOQ/pull/20","diff_url":"https://github.com/djstjr14/jOOQ/pull/20.diff","patch_url":"https://github.com/djstjr14/jOOQ/pull/20.patch"},"body":"CompositeMethodPattern_LeeWonJun"},"comment":{"url":"https://api.github.com/repos/djstjr14/jOOQ/issues/comments/395956927","html_url":"https://github.com/djstjr14/jOOQ/pull/20#issuecomment-395956927","issue_url":"https://api.github.com/repos/djstjr14/jOOQ/issues/20","id":395956927,"node_id":"MDEyOklzc3VlQ29tbWVudDM5NTk1NjkyNw==","user":{"login":"LeeWonJun0513","id":27483937,"node_id":"MDQ6VXNlcjI3NDgzOTM3","avatar_url":"https://avatars0.githubusercontent.com/u/27483937?v=4","gravatar_id":"","url":"https://api.github.com/users/LeeWonJun0513","html_url":"https://github.com/LeeWonJun0513","followers_url":"https://api.github.com/users/LeeWonJun0513/followers","following_url":"https://api.github.com/users/LeeWonJun0513/following{/other_user}","gists_url":"https://api.github.com/users/LeeWonJun0513/gists{/gist_id}","starred_url":"https://api.github.com/users/LeeWonJun0513/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/LeeWonJun0513/subscriptions","organizations_url":"https://api.github.com/users/LeeWonJun0513/orgs","repos_url":"https://api.github.com/users/LeeWonJun0513/repos","events_url":"https://api.github.com/users/LeeWonJun0513/events{/privacy}","received_events_url":"https://api.github.com/users/LeeWonJun0513/received_events","type":"User","site_admin":false},"created_at":"2018-06-09T10:05:28Z","updated_at":"2018-06-09T10:05:28Z","author_association":"NONE","body":"JOOQ-codegen \r\n - AbstractGenerator.java\r\n    - JavaGenerator.java\r\n    - XMLGenerator.java\r\n    - ScalaGenerator.java\r\n    - LanguageGroup.java\r\n\r\nComposite Pattern applied.\r\n\r\nAbstractGenerator 에 사용할 수 있는 Language가 java, xml, scala에 한정돼있는데,\r\n\r\nComposite Pattern을 이용하여, java, xml, scala에 대해 접근 시 호출하는 client를 단순화 시킬 수 있다.\r\nif문을 쓰지 않더라도(java,scala는 scala가 상속받아서 구현하는 식으로 돼있어서 if가 들어감)\r\n올바른 객체에 올바른 메소드를 호출하고 있는 확인할 수 있다. 따라서  투명성이 좀 더 보장된다. \r\n그리고 메소드 하나만 호출하면 전체 구조에 대해서 반복해서 작업을 처리할 수 있다.\r\n\r\n이로써 다른 처리해야할 Language가 추가될 때 접근이 쉬워졌다."}}
{"actor":{"display_login":"LeeWonJun0513"}}