0%
工厂模式和抽象工厂模式的区别
工厂模式是一种常见设计模式,大多数资料会将其分为三种:简单工厂模式(Simple Factory),工厂模式(Factory Method)和抽象工厂模式(Abstract Factory)。按照《HeadFirst Design Pattern》的说法,Simple Factory其实不能称之为一种设计模式,因为它主要思想是把对象创建的功能隔离开来,也是工厂模式思想的基础。本文主要讨论工厂模式和抽象工厂模式的对比及不同应用场景,假设读者对两种模式已有基本了解。
青甘大环线9月自驾游记及攻略
9月中旬休假,选了一下休假目的地,主要以自然景观为主,开始想去稻城亚丁,但看了下景点平均海拔在4700米,想到之前在香格里拉3500米有点轻微高反的情形并考虑到旅途的休闲和舒适性,最终选择了青甘大环线。
重温87版《红楼梦》
记忆中只有儿时看过电视上放映《红楼梦》,尤其在暑期,四大名著循环放映,如果是西游记则百看不遍,如果看到红楼梦就换台,小时眼中的红楼梦只是一个娘了吧叽的纨绔子弟与一群小姐在大观园中每日嬉戏的故事。后来高中时得空看了原著,原著中诗词甚多,又是半文言,加上人物关系繁杂,看到一半终于还是弃了,从此再不愿碰。
吸顶灯启辉器和灯管更换图解
卧室荧光吸顶灯是易耗品,自己动手更换启辉器和灯管是常规操作。百度和知乎了半天,发现带有“更换方法详解”之类的文章全是类似软文的屁话,文章写得臭长,关键信息一点没有。换个灯管是个非常简单的事情,不过还是图解下更换流程,供爱动手的小白参考。
stunnel配置实例
stunnel简介
stunnel 是一个开源跨平台进行通信加密的软件。它可以对原生不支持加密通信的服务(如FTP, Telnet等)在上层提供加密功能,而无须修改这些服务的代码。
Selenium爬取网页实战
Selenium简介
Selenium 是一个浏览器自动测试框架,可以通过模拟各种浏览器行为完成各种测试任务。但它能做的远不止这些,一个更实用的功能是作网页内容爬取。
概率论中的分号表示
在贝叶斯推断和参数估计等相关文献中常见$P(X|Y)$与$P(X;Y)$两种不同的表示方法,常常令初学者感到困惑:参数$Y$和随机变量$X$到底是什么关系?二者有什么区别?
人类简史中的宗教观
《人类简史》的作者在“宗教的法则”一章中对于宗教的出现和解释非常犀利,从成文来看,作者看起来应该像是一个无神论者。搜索引擎上也能看到许多关于基督教徒如何看待《人类简史》的搜索。此处引用一些原文中比较精彩的片段,梳理下宗教发展的轨迹。
计算机界有趣的名言金句
There are two ways of constructing a software design: One way is to make it so simple that there are obviously no deficiencies, and the other way is to make it so complicated that there are no obvious deficiencies. The first method is far more difficult. — C. A. R. Hoare
The Law of Leaky Abstractions: All non-trivial abstractions, to some degree, are leaky. — Joel Spolsky
There are only two hard things in Computer Science: cache invalidation and naming things. — PHIL KARLTON
Hexo添加自定义分类菜单项并定制页面布局
2021-06-20: 使用Hexo扩展的方式可以更简洁地定制页面,避免了本文实现的一些弊端。 Hexo添加自定义分类菜单项并定制页面布局(简洁版)
2020-07-22: 更新hexo-generator-category到v1.0.0后,对应的generator.js代码进行了修改。 2019-11-27: 更新NexT v7.5.0的customcategory.swig文件,与老版本v6.6.0不同。
C#异步接口的同步实现
实际工程中有时需要将同步方法包装在异步方法之中。比如一个类实现了异步接口,而实际实现可能是本地计算的同步操作,也可能是需要HTTP请求的异步操作。对于前者,如果实现中没有await关键字,编译器会提示该方法缺少await运算符,将以同步方式运行。将二者统一的解决方案是使用Task.FromResult将结果包装成一个已完成的Task返回。举例:

