<html><head><meta http-equiv="Content-Type" content="text/html charset=utf-8"></head><body style="word-wrap: break-word; -webkit-nbsp-mode: space; -webkit-line-break: after-white-space;" class=""><div class="">This is compelling to me.</div><div class=""><br class=""></div><div class="">I haven’t put enough thought into it to make up my mind about it, but a mixin system would solve a problem I’m currently struggling with.</div><div class=""><br class=""></div><div class="">I’ve been working on cleaning up the codebase of my iOS/Mac app, and I’m trying to reduce duplication between the codebases. The problem is, there are things that aren’t easy to completely encapsulate into a separate, universal class — things that have bits and pieces in common, but different overall shape.</div><div class=""><br class=""></div><div class="">Perhaps I should encapsulate them anyway, add a level of indirection, inject dependencies… But a mixin is an abstraction that would allow me to extract common parts in an easier way.</div><br class=""><div class="">
<div class="">— Radek</div>
</div>
<br class=""><div><blockquote type="cite" class=""><div class="">On 27 Feb 2016, at 10:59, Антон Жилин via swift-evolution &lt;<a href="mailto:swift-evolution@swift.org" class="">swift-evolution@swift.org</a>&gt; wrote:</div><br class="Apple-interchange-newline"><div class=""><div dir="ltr" class="">Some people opposed to Abstract Classes proposal (including myself) have said that mixins could solve the problem better.<div class="">So I prepaired a proposal draft to add stored properties to protocols. Here it is:</div><div class=""><a href="https://gist.github.com/Anton3/f0550922c1be0fc5447c" class="">https://gist.github.com/Anton3/f0550922c1be0fc5447c</a><br class=""></div><div class=""><br class=""></div><div class="">P.S. I added a `mixin` keyword in the beginning, but we can opt to just extend protocols, which I mention in "alternatives".</div></div>
_______________________________________________<br class="">swift-evolution mailing list<br class=""><a href="mailto:swift-evolution@swift.org" class="">swift-evolution@swift.org</a><br class="">https://lists.swift.org/mailman/listinfo/swift-evolution<br class=""></div></blockquote></div><br class=""></body></html>