<html>
  <head>
    <meta http-equiv="content-type" content="text/html; charset=UTF-8">
  </head>
  <body>
<div>The lack of namespaces is making people create all kinds of &quot;design patterns&quot;.<br /></div><div><br /></div><div>struct API {</div><div>&nbsp; &nbsp; static let endpoint = &quot;<a href="http://example.com/api" target="_blank" rel="noopener noreferrer">http://example.com/api</a>&quot;</div><div>}</div><div><br /></div><div>Here is an &quot;improvement&quot; to the above &quot;design pattern&quot; to prevent instantiating API:</div><div><br /></div><div>struct API {</div><div>&nbsp; &nbsp; private init() {}</div><div>&nbsp; &nbsp; static let endpoint = &quot;<a href="http://example.com/api" target="_blank" rel="noopener noreferrer">http://example.com/api</a>&quot;</div><div>}</div><div><br /></div><div>Finally, here is another &quot;improvement&quot; that uses enum instead of struct to avoid having to write the private initializer:</div><div><br /></div><div>enum API {</div><div>&nbsp; &nbsp; static let endpoint = &quot;<a href="http://example.com/api" target="_blank" rel="noopener noreferrer">http://example.com/api</a>&quot;</div><div>}</div><div><br /></div><div>I doubt any of you find this beautiful. Yet these &quot;design patterns&quot; (just hacks IMO) are spreading like the plague because of the lack of namespaces.</div><div><br /></div><div>What do you think?</div><div><br /></div>  </body>
</html>