{"action":"created","issue":{"url":"https://api.github.com/repos/yegor256/s3auth/issues/297","labels_url":"https://api.github.com/repos/yegor256/s3auth/issues/297/labels{/name}","comments_url":"https://api.github.com/repos/yegor256/s3auth/issues/297/comments","events_url":"https://api.github.com/repos/yegor256/s3auth/issues/297/events","html_url":"https://github.com/yegor256/s3auth/pull/297","id":70949073,"number":297,"title":"#286 Puzzle 213 in HttpFacade.java:66-69: Create new a class Facade","user":{"login":"simonjenga","id":1405237,"avatar_url":"https://avatars.githubusercontent.com/u/1405237?v=3","gravatar_id":"","url":"https://api.github.com/users/simonjenga","html_url":"https://github.com/simonjenga","followers_url":"https://api.github.com/users/simonjenga/followers","following_url":"https://api.github.com/users/simonjenga/following{/other_user}","gists_url":"https://api.github.com/users/simonjenga/gists{/gist_id}","starred_url":"https://api.github.com/users/simonjenga/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/simonjenga/subscriptions","organizations_url":"https://api.github.com/users/simonjenga/orgs","repos_url":"https://api.github.com/users/simonjenga/repos","events_url":"https://api.github.com/users/simonjenga/events{/privacy}","received_events_url":"https://api.github.com/users/simonjenga/received_events","type":"User","site_admin":false},"labels":[{"url":"https://api.github.com/repos/yegor256/s3auth/labels/15%20mins","name":"15 mins","color":"eb6421"},{"url":"https://api.github.com/repos/yegor256/s3auth/labels/@pinaf","name":"@pinaf","color":"009801"},{"url":"https://api.github.com/repos/yegor256/s3auth/labels/CR","name":"CR","color":"bfd4f3"}],"state":"open","locked":false,"assignee":null,"milestone":null,"comments":11,"created_at":"2015-04-25T18:23:06Z","updated_at":"2015-04-30T01:01:06Z","closed_at":null,"pull_request":{"url":"https://api.github.com/repos/yegor256/s3auth/pulls/297","html_url":"https://github.com/yegor256/s3auth/pull/297","diff_url":"https://github.com/yegor256/s3auth/pull/297.diff","patch_url":"https://github.com/yegor256/s3auth/pull/297.patch"},"body":"#286 Puzzle 213 in HttpFacade.java:66-69: Create new a class Facade"},"comment":{"url":"https://api.github.com/repos/yegor256/s3auth/issues/comments/97623608","html_url":"https://github.com/yegor256/s3auth/pull/297#issuecomment-97623608","issue_url":"https://api.github.com/repos/yegor256/s3auth/issues/297","id":97623608,"user":{"login":"pinaf","id":1054771,"avatar_url":"https://avatars.githubusercontent.com/u/1054771?v=3","gravatar_id":"","url":"https://api.github.com/users/pinaf","html_url":"https://github.com/pinaf","followers_url":"https://api.github.com/users/pinaf/followers","following_url":"https://api.github.com/users/pinaf/following{/other_user}","gists_url":"https://api.github.com/users/pinaf/gists{/gist_id}","starred_url":"https://api.github.com/users/pinaf/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/pinaf/subscriptions","organizations_url":"https://api.github.com/users/pinaf/orgs","repos_url":"https://api.github.com/users/pinaf/repos","events_url":"https://api.github.com/users/pinaf/events{/privacy}","received_events_url":"https://api.github.com/users/pinaf/received_events","type":"User","site_admin":false},"created_at":"2015-04-30T01:01:06Z","updated_at":"2015-04-30T01:01:06Z","body":"@simonjenga ok first it seems we need to create the queue outside of `Facade` because `HttpThread` and `FtpThread` need a reference to it. So let's pass the queue to `Facade` through its constructor.\r\nNow,  because of the restrictions on calling `super` and passing the queue, inheritance is not viable. We should go with composition. The \"base\" one should be called `SimpleFacade`.\r\n\r\nAlso, please add a puzzle to `SimpleFacade` to extract a public interface called `Facade` from its public methods. All 3 facade classes should implement this interface.\r\n\r\nSound good?"}}