上一页 1 2 3 4 5 6 7 ··· 101 下一页
摘要: 运行时的消息转发 https://www.cnblogs.com/feng9exe/p/10945712.html 其实在 objc-msg-x86_64.s 中包含了多个版本的 objc_msgSend 方法,它们是根据返回值的类型和调用者的类型分别处理的: objc_msgSendSuper:向 阅读全文
posted @ 2022-05-29 23:03 zzfx 阅读(44) 评论(0) 推荐(0) 编辑
摘要: React (a.k.a. ReactJS or React.js) is a JavaScript library for creating user interfaces, open sourced to the world by Facebook and Instagram team in 2 阅读全文
posted @ 2022-05-28 20:52 zzfx 阅读(53) 评论(0) 推荐(0) 编辑
摘要: 多态是语言对可变性的支持 阅读全文
posted @ 2022-05-21 14:22 zzfx 阅读(19) 评论(0) 推荐(0) 编辑
摘要: 继承多态是运行时行为 和运行时(类型)动态绑定、(方法)动态路由相关 阅读全文
posted @ 2022-05-21 13:58 zzfx 阅读(17) 评论(0) 推荐(0) 编辑
摘要: 编程的过程看成计算的构建 阅读全文
posted @ 2022-05-20 17:05 zzfx 阅读(24) 评论(0) 推荐(0) 编辑
摘要: 依赖倒置的层(高层模块不应依赖于低层模块,二者应依赖于抽象)-高层表示策略层。 低层:细节、实现; 依赖于控制方向 控制方向:(IO)事件循环是控制逻辑的根 高层:策略层、掌握更多上下文、更接近用户目的、应用层、聚合低层能力以达到目的 低层:为高层提供基础能力、技术工具层;低层提供技术和工具。 阅读全文
posted @ 2022-05-18 21:27 zzfx 阅读(60) 评论(0) 推荐(0) 编辑
摘要: 写在最前 文章标题谈到了面向协议编程(下文简称 POP),是因为前几天阅读了一篇讲 Swift 中 POP 的文章。本文会以此为出发点,聊聊相关的概念,比如接口、mixin、组合模式、多继承等,同时也会借助各种语言中的例子来阐述我的思想。 那些老生常谈的概念,相信每位读者都耳熟能详了,我当然不会无聊 阅读全文
posted @ 2022-05-18 15:37 zzfx 阅读(130) 评论(0) 推荐(0) 编辑
摘要: 在继承、组合外添加了新的功能添加(组合)方式 Protocols can have default implementations for requirements specified in a protocol extension, allowing “mixin” or “trait” like 阅读全文
posted @ 2022-05-18 15:17 zzfx 阅读(38) 评论(0) 推荐(0) 编辑
摘要: 正如牛顿三大定律在经典力学中的位置一样,“开-闭”原则(Open-Closed Principle)是面向对象的可复用设计(Object Oriented Design或OOD)的基石。其他设计原则(里氏代换原则、依赖倒转原则、合成/聚合复用原则、迪米特法则、接口隔离原则)是实现“开-闭”原则的手段 阅读全文
posted @ 2022-05-17 17:15 zzfx 阅读(204) 评论(0) 推荐(0) 编辑
摘要: 除了函数(指针)、变量、引用上下文(具有动态作用域和生命周期),闭包最大的贡献在于逻辑内聚 将使用函数指针时分散到各处的关联逻辑放到一起 阅读全文
posted @ 2022-05-17 11:10 zzfx 阅读(31) 评论(0) 推荐(0) 编辑
摘要: 编程范式是人类思维方式的投影-代表了程序设计者认为程序应该如何被构建和执行的看法 阅读全文
posted @ 2022-05-16 23:11 zzfx 阅读(28) 评论(0) 推荐(0) 编辑
摘要: 抽象的规则是稳定,分解的规则是独立 什么是抽象呢?首先不必澄清什么是抽象,而从什么算抽象说起,稳定的、高层的就代表了抽象。就像一个公司,最好保证了高层的稳定,才能保证全局的发展。在进行系统设计时,稳定的抽象接口和高层逻辑,也代表了整个系统的稳定与柔性。兵熊熊一窝,将良良一窝,软件的构建也正如打仗,良 阅读全文
posted @ 2022-05-16 12:18 zzfx 阅读(64) 评论(0) 推荐(0) 编辑
摘要: 面向对象通过构建更大的结构来模拟世界,函数式编程通过构造更大的计算来求解问题 那我认为的编程语言两个功能, 一个是模拟, 一个是计算,真实的物理世界, 或者说具体的业务, 有巨大的复杂性,当你要用编程语言解决问题, 首先语言应该有足够的灵活性去描述问题,然后是计算, 比说你能描述字符串文件, 也能描 阅读全文
posted @ 2022-05-14 23:19 zzfx 阅读(22) 评论(0) 推荐(0) 编辑
摘要: 框架是程序信息流的主干道 阅读全文
posted @ 2022-04-29 23:05 zzfx 阅读(19) 评论(0) 推荐(0) 编辑
摘要: 对象分为主动对象和被动对象,主动对象内部包含一个线程,可以自动完成动作或改变状态,而一般的被动对象只能通过被其他对象调用才有所作为。在多线程程序中,经常把一个线程封装到主动对象里面。 Active Object 设计模式的本质是解耦合方法的调用 (Method invocation) 与方法的执行 阅读全文
posted @ 2022-04-26 22:16 zzfx 阅读(265) 评论(0) 推荐(0) 编辑
摘要: Java 采用的是管程技术,synchronized 关键字及 wait()、notify()、notifyAll() 这三个方法都是管程的组成部分。而管程和信号量是等价的,所谓等价指的是用管程能够实现信号量,也能用信号量实现管程。但是管程利用OOP的封装特性解决了信号量在工程实践上的复杂性问题,因 阅读全文
posted @ 2022-04-26 16:25 zzfx 阅读(1497) 评论(0) 推荐(0) 编辑
摘要: 元编程:面向元类型(反射)、元信息(注解)和模版类型的编程 阅读全文
posted @ 2022-04-25 14:55 zzfx 阅读(38) 评论(0) 推荐(0) 编辑
摘要: 多态这个概念在c++和java这种强类型语言中比较强调,js,python这种弱类型语言天生支持多态。 意味着强类型语言的多态是和继承结合在一起的,多态的前提是继承。 在js和python这种弱类型语言中,多态是天生的。在Python和js中关注的不是传入对象是否是xx的子类,而是传入的对象是否有这 阅读全文
posted @ 2022-04-24 22:51 zzfx 阅读(74) 评论(0) 推荐(0) 编辑
摘要: “关键字”是对 C 编译器具有特殊含义的单词。 阅读全文
posted @ 2022-04-20 13:12 zzfx 阅读(31) 评论(0) 推荐(0) 编辑
摘要: 这样重新编译时只需要编译有更改的单元。这样在开发的时候,能降低编译的时间。 软件架构设计的目标就是分解软件系统,降低软件系统的复杂性。如果是一个多人协作的软件,大家都在一个文件里完成任务,那么无疑会大大增加设计难度和协作成本。这也是多文件编译“多编译单元”在软件工程中的巨大优势。 高内聚低耦合是判断 阅读全文
posted @ 2022-04-20 13:06 zzfx 阅读(32) 评论(0) 推荐(0) 编辑
上一页 1 2 3 4 5 6 7 ··· 101 下一页