会员
周边
新闻
博问
闪存
赞助商
YouClaw
所有博客
当前博客
我的博客
我的园子
账号设置
会员中心
简洁模式
...
退出登录
注册
登录
zzfx
博客园
首页
新随笔
订阅
管理
上一页
1
2
3
4
5
6
7
8
9
10
···
102
下一页
2022年5月18日
从 Swift 的面向协议编程说开去 -- mixin
摘要: 写在最前 文章标题谈到了面向协议编程(下文简称 POP),是因为前几天阅读了一篇讲 Swift 中 POP 的文章。本文会以此为出发点,聊聊相关的概念,比如接口、mixin、组合模式、多继承等,同时也会借助各种语言中的例子来阐述我的思想。 那些老生常谈的概念,相信每位读者都耳熟能详了,我当然不会无聊
阅读全文
posted @ 2022-05-18 15:37 zzfx
阅读(219)
评论(0)
推荐(0)
2022年5月17日
“开-闭”原则(Open-Closed Principle)是面向对象的可复用设计(Object Oriented Design或OOD)的基石
摘要: 正如牛顿三大定律在经典力学中的位置一样,“开-闭”原则(Open-Closed Principle)是面向对象的可复用设计(Object Oriented Design或OOD)的基石。其他设计原则(里氏代换原则、依赖倒转原则、合成/聚合复用原则、迪米特法则、接口隔离原则)是实现“开-闭”原则的手段
阅读全文
posted @ 2022-05-17 17:15 zzfx
阅读(315)
评论(0)
推荐(0)
闭包具有逻辑内聚的功能
摘要: 除了函数(指针)、变量、引用上下文(具有动态作用域和生命周期),闭包最大的贡献在于逻辑内聚 将使用函数指针时分散到各处的关联逻辑放到一起
阅读全文
posted @ 2022-05-17 11:10 zzfx
阅读(45)
评论(0)
推荐(0)
2022年5月16日
编程范式是人类思维方式的投影-代表了程序设计者认为程序应该如何被构建和执行的看法
摘要: 编程范式是人类思维方式的投影-代表了程序设计者认为程序应该如何被构建和执行的看法
阅读全文
posted @ 2022-05-16 23:11 zzfx
阅读(44)
评论(0)
推荐(0)
抽象的规则是稳定,分解的规则是独立
摘要: 抽象的规则是稳定,分解的规则是独立 什么是抽象呢?首先不必澄清什么是抽象,而从什么算抽象说起,稳定的、高层的就代表了抽象。就像一个公司,最好保证了高层的稳定,才能保证全局的发展。在进行系统设计时,稳定的抽象接口和高层逻辑,也代表了整个系统的稳定与柔性。兵熊熊一窝,将良良一窝,软件的构建也正如打仗,良
阅读全文
posted @ 2022-05-16 12:18 zzfx
阅读(117)
评论(0)
推荐(0)
2022年5月14日
面向对象通过构建更大的结构来模拟世界,函数式编程通过构造更大的计算来求解问题
摘要: 面向对象通过构建更大的结构来模拟世界,函数式编程通过构造更大的计算来求解问题 那我认为的编程语言两个功能, 一个是模拟, 一个是计算,真实的物理世界, 或者说具体的业务, 有巨大的复杂性,当你要用编程语言解决问题, 首先语言应该有足够的灵活性去描述问题,然后是计算, 比说你能描述字符串文件, 也能描
阅读全文
posted @ 2022-05-14 23:19 zzfx
阅读(47)
评论(0)
推荐(0)
2022年4月29日
框架是程序信息流的主干道-构造定律
摘要: 框架是程序信息流的主干道
阅读全文
posted @ 2022-04-29 23:05 zzfx
阅读(35)
评论(0)
推荐(0)
2022年4月26日
Active Object模式,也称为Actor模式
摘要: 对象分为主动对象和被动对象,主动对象内部包含一个线程,可以自动完成动作或改变状态,而一般的被动对象只能通过被其他对象调用才有所作为。在多线程程序中,经常把一个线程封装到主动对象里面。 Active Object 设计模式的本质是解耦合方法的调用 (Method invocation) 与方法的执行
阅读全文
posted @ 2022-04-26 22:16 zzfx
阅读(389)
评论(0)
推荐(0)
Java线程锁,synchronized、wait、notify详解--java 管程
摘要: Java 采用的是管程技术,synchronized 关键字及 wait()、notify()、notifyAll() 这三个方法都是管程的组成部分。而管程和信号量是等价的,所谓等价指的是用管程能够实现信号量,也能用信号量实现管程。但是管程利用OOP的封装特性解决了信号量在工程实践上的复杂性问题,因
阅读全文
posted @ 2022-04-26 16:25 zzfx
阅读(1827)
评论(0)
推荐(0)
2022年4月25日
元编程:面向元类型(反射)、元信息(注解)和模版类型的编程
摘要: 元编程:面向元类型(反射)、元信息(注解)和模版类型的编程
阅读全文
posted @ 2022-04-25 14:55 zzfx
阅读(61)
评论(0)
推荐(0)
2022年4月24日
鸭子类型和多态
摘要: 多态这个概念在c++和java这种强类型语言中比较强调,js,python这种弱类型语言天生支持多态。 意味着强类型语言的多态是和继承结合在一起的,多态的前提是继承。 在js和python这种弱类型语言中,多态是天生的。在Python和js中关注的不是传入对象是否是xx的子类,而是传入的对象是否有这
阅读全文
posted @ 2022-04-24 22:51 zzfx
阅读(93)
评论(0)
推荐(0)
2022年4月20日
“关键字”是对 C 编译器具有特殊含义的单词。
摘要: “关键字”是对 C 编译器具有特殊含义的单词。
阅读全文
posted @ 2022-04-20 13:12 zzfx
阅读(86)
评论(0)
推荐(0)
编译单元的三个关联项:编译时间、软件工程、关键字
摘要: 这样重新编译时只需要编译有更改的单元。这样在开发的时候,能降低编译的时间。 软件架构设计的目标就是分解软件系统,降低软件系统的复杂性。如果是一个多人协作的软件,大家都在一个文件里完成任务,那么无疑会大大增加设计难度和协作成本。这也是多文件编译“多编译单元”在软件工程中的巨大优势。 高内聚低耦合是判断
阅读全文
posted @ 2022-04-20 13:06 zzfx
阅读(53)
评论(0)
推荐(0)
什么是编译单元
摘要: 编译单元,顾名思义,就是一次编译的单位,C/C++语言中编译器都是以被做了include递归展开的cpp文件为编译单位,这也就是最小的编译单位了。 换句话说,你可以让编译器编译一个cpp源文件,而编译器会自动处理它所包含的内容,最终把它所包含的内容以及它自身的内容编译成一个目标文件。 你无法让编译器
阅读全文
posted @ 2022-04-20 12:06 zzfx
阅读(1280)
评论(0)
推荐(1)
2022年4月1日
代理:接口一致、创建混入(替代)、消息转发
摘要: 代理:接口一致、创建混入(替代)、消息转发
阅读全文
posted @ 2022-04-01 15:26 zzfx
阅读(36)
评论(0)
推荐(0)
2022年3月31日
工程是材料清单(包含材料用途),工程师负责将材料组合到一起
摘要: 工程是材料清单(包含材料用途),工程师负责将材料组合到一起
阅读全文
posted @ 2022-03-31 14:50 zzfx
阅读(53)
评论(0)
推荐(0)
2022年3月22日
只有理解了部分是怎么组合到整体上的,才能理解元素的真正功能
摘要: 只有理解了部分是怎么组合到整体上的,才能理解元素的真正功能
阅读全文
posted @ 2022-03-22 23:23 zzfx
阅读(22)
评论(0)
推荐(0)
aop收口要寻找最窄的切面
摘要: aop收口要寻找最窄的切面
阅读全文
posted @ 2022-03-22 15:12 zzfx
阅读(17)
评论(0)
推荐(0)
2022年3月17日
URLProtocol 注册方式的细节问题
摘要: 前言 苹果提供了 URLProtocol 让开发者可以介入 URL Loading System 做一些定制操作。 注册 protocol 注册 protocol 有两种方式 [NSURLProtocol registerClass:protocol.class] 手动修改 protocolClas
阅读全文
posted @ 2022-03-17 21:20 zzfx
阅读(449)
评论(0)
推荐(0)
2022年3月11日
什么是强类型、弱类型、动态类型、静态类型语言
摘要: 强类型语言 强制类型定义的语言,即一旦某一个变量被定义类型,如果不经强制转换,那么它永远就死该数据类型。 强类型语言包括:Java、.net、Python、C++等语言。其中Python是动态语言,是强类型定义语言,是类型安全的语言,Java是静态语言,是强类型定义语言,也是类型安全的语言。 强类型
阅读全文
posted @ 2022-03-11 19:31 zzfx
阅读(799)
评论(0)
推荐(0)
上一页
1
2
3
4
5
6
7
8
9
10
···
102
下一页
公告