<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="">You should try reading my blog post, hopefully it will change your opinion of Protocol-Oriented programming. &nbsp;I would be interested to hear what you or anyone else think of Protocol-Oriented programming after reading my post.<div class=""><br class=""></div><div class="">Jon</div><div class=""><br class=""></div><div class=""><br class=""><div><blockquote type="cite" class=""><div class="">On Feb 14, 2016, at 8:34 PM, zhaoxin肇鑫 &lt;<a href="mailto:owenzx@gmail.com" class="">owenzx@gmail.com</a>&gt; wrote:</div><br class="Apple-interchange-newline"><div class=""><div dir="ltr" class=""><div class="gmail_default" style="font-family:georgia,serif">I have not read your blog. But in my opinion, what Apple called protocol programming is actually so called functional programming. It is not object programming at all. It uses protocols and structs to avoid object programming.</div><div class="gmail_default" style="font-family:georgia,serif"><br class=""></div><div class="gmail_default" style="font-family:georgia,serif">zhaoxin</div></div><div class="gmail_extra"><br class=""><div class="gmail_quote">On Mon, Feb 15, 2016 at 7:59 AM, Jon Hoffman via swift-users <span dir="ltr" class="">&lt;<a href="mailto:swift-users@swift.org" target="_blank" class="">swift-users@swift.org</a>&gt;</span> wrote:<br class=""><blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex"><div style="word-wrap:break-word" class=""><div style="margin:0px;line-height:normal;color:rgb(69,69,69)" class="">Numerous tutorials that I have seen take a very Object-Oriented approach to the protocol-oriented programming (POP) paradigm.&nbsp; By this statement I mean that they tell us that with POP we should begin our design with the protocol rather than with the superclass as we did with OOP however the protocol design tends to mirror the superclass design of OOP. &nbsp; They also tell us that we should use extensions to add common functionality to types that conform to a protocol as we did with superclasses in OOP.&nbsp; While protocols and protocol extensions are arguably two of the most important concepts of POP these tutorials seem to be missing some other very important concepts. &nbsp;</div><div style="margin:0px;line-height:normal;color:rgb(69,69,69);min-height:14px" class=""><br class=""></div><div style="margin:0px;line-height:normal;color:rgb(69,69,69)" class="">In this post I would like to compare Protocol-Oriented design to Object-Oriented design to highlight some of the conceptual differences.&nbsp; You can view the blog post here: &nbsp;<a href="http://masteringswift.blogspot.com/2016/02/pop-and-oop.html" target="_blank" class="">http://masteringswift.blogspot.com/2016/02/pop-and-oop.html</a></div><span class="HOEnZb"><font color="#888888" class=""><div style="margin:0px;line-height:normal;color:rgb(69,69,69)" class=""><br class=""></div><div style="margin:0px;line-height:normal;color:rgb(69,69,69)" class="">Jon</div></font></span></div><br class="">_______________________________________________<br class="">
swift-users mailing list<br class="">
<a href="mailto:swift-users@swift.org" class="">swift-users@swift.org</a><br class="">
<a href="https://lists.swift.org/mailman/listinfo/swift-users" rel="noreferrer" target="_blank" class="">https://lists.swift.org/mailman/listinfo/swift-users</a><br class="">
<br class=""></blockquote></div><br class=""></div>
</div></blockquote></div><br class=""></div></body></html>