首页 文章 精选 留言 我的
优秀的个人博客,低调大师

微信关注我们

原文链接:https://yq.aliyun.com/articles/175629

转载内容版权归作者及来源网站所有!

低调大师中文资讯倾力打造互联网数据资讯、行业资源、电子商务、移动互联网、网络营销平台。持续更新报道IT业界、互联网、市场资讯、驱动更新,是最及时权威的产业资讯及硬件资讯报道平台。

面向协议编程并非银弹

银弹(Silver Bullet)一词出自IBM大型机之父Frederick P. Brooks Jr.在1986年发表的一篇关于软件工程的经典论文《没有银弹:软件工程的本质性与附属性工作》(No Silver Bullet — Essence and Accidents of Software Engineering)。其中的“银弹”是指一项可使软件工程的生产力在十年内提高十倍的技术或方法。该论文强调由于软件的复杂性本质,而使这样“真正的银弹”并不存在。 银弹在软件工程中的含义是指妄图创造某种便捷的开发技术,从而使某个项目的实施提高效率。又或者指摆脱该项目的本质或核心,而达到超乎想象的成功。但这么做的结果却是徒劳的。 在本文中Chris介绍了Swift中的面向协议编程的滥用情况,认为很多时候有更简单的解决办法,面向协议编程并非银弹。 以下为正文: 在Swift语言中,面向协议编程很流行。在“面向协议”那儿有很多Swift代码,一些开源库甚至将其声明为功能。我觉得协议在Swift中被过度滥用了,其实问题常常可以用更简单的方式来解决。简而言之,就是不要生搬硬套协议的条条框框,而不知变通。...

Android View焦点总结

Android View焦点 Android焦点相关逻辑大部分都在都在View, ViewGroup和FocusFinder三个类中. ViewRoot View对象都有一个mParent变量(添加到ViewGroup后), 代指其父容器. 绝大部分View的mParent都是ViewGroup类型, 除了根节点. 一个Window中View根节点DecorView的mParent称为ViewRoot, 在安卓4.0后ViewRoot对应ViewRootImpl, 它不是View的子类, 而是个ViewParent. ViewRootImpl是连接Window和DecorView的纽带, View的焦点, 按键, 布局, 渲染等流程都是从ViewRoot中开始的. View的焦点 基本流程如下 View(包括ViewGroup)获取焦点都通过如下三个方法 View.java 从上面可以看到前两个最终会执行到第三个方法. 最后的requestFocusNoSearch先判断是否可以获取焦点, 然后进入下面的最后流程: View.java 上面的流程比较简单: 如果当前没有焦点, 先置焦点...

相关文章

发表评论

资源下载

更多资源
Oracle

Oracle

Oracle Database,又名Oracle RDBMS,或简称Oracle。是甲骨文公司的一款关系数据库管理系统。它是在数据库领域一直处于领先地位的产品。可以说Oracle数据库系统是目前世界上流行的关系数据库管理系统,系统可移植性好、使用方便、功能强,适用于各类大、中、小、微机环境。它是一种高效率、可靠性好的、适应高吞吐量的数据库方案。

Apache Tomcat

Apache Tomcat

Tomcat是Apache 软件基金会(Apache Software Foundation)的Jakarta 项目中的一个核心项目,由Apache、Sun 和其他一些公司及个人共同开发而成。因为Tomcat 技术先进、性能稳定,而且免费,因而深受Java 爱好者的喜爱并得到了部分软件开发商的认可,成为目前比较流行的Web 应用服务器。

Eclipse

Eclipse

Eclipse 是一个开放源代码的、基于Java的可扩展开发平台。就其本身而言,它只是一个框架和一组服务,用于通过插件组件构建开发环境。幸运的是,Eclipse 附带了一个标准的插件集,包括Java开发工具(Java Development Kit,JDK)。

JDK

JDK

JDK是 Java 语言的软件开发工具包,主要用于移动设备、嵌入式设备上的java应用程序。JDK是整个java开发的核心,它包含了JAVA的运行环境(JVM+Java系统类库)和JAVA工具。