闰土除了抓猹看西瓜地外,学习新技术也很快,很快这2本都学完了。听说前端的Vue很火,梦想成为一个看西瓜的人中技术最好的仔的闰土就又买了一本《Vue从入门到崩溃》,如果继续按上面的模式,随着闰土的不断学习,我们的代码却越来越臃肿,变得难以维护。 由于RunTu是一个高级模块并且是一个细节实现类,此类依赖了书籍Java和Linux又是一个细节依赖类,这导致RunTu每读一本书都需要修改代码,这与我们的依赖倒置原则是相悖的。 闰土也意识到了这一点,买了一本《设计模式》看了看,然后改成了下边的代码:
Hilt 是Google 最新的依赖注入框架,其是基于Dagger研发,但它不同于Dagger。对于Android开发者来说,Hilt可以说专门为Android 打造,提供了一种将Dagger依赖项注入到Android应用程序的标准方法,而且创建了一组标准的组件和作用域,这些组件会自动集成到Android应用程序的各个生命周期中,以简化开发者的上手难度。
本站文章除注明转载/出处外,均为本站原创或翻译,转载前请务必署名,转载请标明出处 最后编辑时间为: 2022/01/04 13:05
开闭原则是Java世界里最基础的设计原则,它指导我们如何建立一个稳定的、灵活的系统,先来看开闭原则的定义: Software entities like classes,modules and functions should be open for extension but closed for modifications
静态代理: 由我们开发者自己手动创建或者在程序运行前就已经存在的代理类,静态代理通常只代理一个类,动态代理是代理一个接口下的多个实现类。
在软件开发中,为了提高软件系统的可维护性和可复用性,增加软件的可扩展性和灵活性,程序员要尽量根据 7 条原则来开发程序,从而提高软件开发效率、节约软件开发成本和维护成本。我们将在下面的几节中依次来介绍这 7 条原则,本节首先介绍开闭原则。
如果这个接口又在多个项目中使用了,那么进行更改将需要付出更多的精力,以确保它不会在其他地方运行失败。
在设计一个模块的时候,应当使这个模块可以在不被修改的前提下被扩展,即应当可以在不必修改源代码的情况下改变这个模块的行为。
在开发软件的过程中,因为变化 、升级和维护等原因需要对软件原有的代码进行修改,可能会将错误引入原本已经测试过的旧代码中,破坏原有的系统,因此,当软件需求变化时,我们应尽量运用扩展的方式来实现变化,而不是修改原来的代码。
其实,”设计模式“这个术语最早并非出现在软件设计中,而是被应用于建筑领域的设计中。
软件实体应该对扩展开放,对修改关闭,即实体应当通过扩展实现变化,而不是修改代码实现变化
学习微软技术COM是绕不开的一道坎,最近做项目的时候发现有许多功能需要用到COM中的内容,虽然只是简单的使用COM中封装好的内容,但是许多代码仍然只知其然,不知其所以然,所以我决定从头开始好好学习一下COM基础的内容,因此在这记录下自己学习的内容,以便日后参考,也给其他朋友提供一点学习思路。 COM的全称是Component Object Module,组件对象模型。组件就我自己的理解就是将各个功能部分编写成可重用的模块,程序就好像搭积木一样由这些可重用模块构成,这样将各个模块的耦合降到最低,以后升级修改功能只需要修改某一个模块,这样就大大降低了维护程序的难度和成本,提高程序的可扩展性。COM是微软公司提出的组件标准,同时微软也定义了组件程序之间进行交互的标准,提供了组件程序运行所需的环境。 COM是基于组件化编程的思想,在COM中每一个组件成为一个模块,它可以是动态链接库或者可执行文件,一个组件程序可以包含一个或者多个组件对象,COM对象不同于OOP(面向对象)中的对象,COM对象是定义在二进制机器代码基础之上,是跨语言的。而OOP中的对象是建立在语言之上的。脱离了语言对象也就不复存在.COM是独立在编程语言之上的,是语言无关的。COM的这一特性使得不同语言开发的组件之间的互相交互成为可能。
这两天正好在补魔劣的小说,在手机上是拿iBook看的,到电脑上用的是Calibre。iBook的阅读体验可谓是极佳的,这让我无比舒适,但是Calibre上阅读时显示的是宋体,长时间阅读让眼睛酸痛不已,为了解决这个问题,我找到了微软正黑体这个字体(Microsoft JHengHei)
启动成功后,在浏览器中输入http://127.0.0.1:8000/hello查看结果
跟我学 systemd 摘要 我的系列文档 Netkiller Architect 手札Netkiller Developer 手札Netkiller PHP 手札Netkiller Python 手札Netkiller Testing 手札Netkiller Cryptography 手札Netkiller Linux 手札Netkiller Debian 手札Netkiller CentOS 手札Netkiller FreeBSD 手札Netkiller Shell 手札Netkiller Securi
上述涉及到的移动语义,是由C++11之前存在的一些历史遗留问题,使C++标准库的实现在多种场景下消除了不必要的额外开销(如std::vector, std::string).这些问题都由于构造函数和拷贝构造函数以及赋值构造函数引起.
接口名称应以大写的“I”开头,后跟另一个大写字母。 此规则报告与接口名称(如“MyInterface”和“IsolatedInterface”)相关的冲突。
Linux Token Auth 一次性密码认证 摘要 服务器端脚本: https://github.com/oscm/devops/blob/master/bin/chpasswd.sh 手机应用: https://github.com/oscm/Token 我的系列文档 Netkiller Architect 手札 Netkiller Developer 手札 Netkiller PHP 手札 Netkiller Python 手札 Netkiller Testing 手札 Netk
网络设备配置管理与版本控制 摘要 2014-12-25 我的系列文档 Netkiller Architect 手札 Netkiller Developer 手札 Netkiller PHP 手札 Netkiller Python 手札 Netkiller Testing 手札 Netkiller Cryptography 手札 Netkiller Linux 手札 Netkiller Debian 手札 Netkiller CentOS 手札 Netkiller Free
Software entities like classes,modules and functions should be open for extension but closed for modifications.
这不是一篇鸡汤文,因为我并没有在使用 Linux 一万小时后成为 Linux 达人,甚至在很多方面,我连新手都算不上。我走的这些弯路能篇成一本很有参考价值的反面教材,下面,我来讲讲我用 Linux 都折腾了啥。
因果图在运维工作中的应用 摘要 我的系列文档 Netkiller Architect 手札 Netkiller Developer 手札 Netkiller PHP 手札 Netkiller Python 手札 Netkiller Testing 手札 Netkiller Cryptography 手札 Netkiller Linux 手札 Netkiller Debian 手札 Netkiller CentOS 手札 Netkiller FreeBSD 手札 Net
众所周知,坊间盛传实际上我是一个很八卦的水B,这点儿你们应该可以从GM专栏中看出来。如果我要是在论坛或贴吧当斑竹、吧主,那我肯定天天水B妥妥地带节奏。 最近事情贼多,除了工作的事儿还有业余的事儿还要整理写公号,要说脑子不累那是不可能的。
Open-Closed Principle,"开闭原则"百科上是这么说的:一个软件实体(如类、模块、函数)应该对扩展开放,对修改关闭。
开闭原则是java世界里最基础的设计原则,它指导我们如何建立一个稳定,灵活的系统。开闭原则定义如下:
日前召开的WWDC2016大会上,苹果发布了最新移动操作系统iOS 10,而在众多的新系统特性中,一项喜大普奔的消息就是在iOS 10中终于可以删除系统预装应用了!虽然在苹果WWDC上并没有提及,但还
Shell 历史记录异地留痕审计与监控 摘要 我的系列文档 编程语言 Netkiller Architect 手札Netkiller Developer 手札Netkiller PHP 手札Netkiller Python 手札Netkiller Testing 手札Netkiller Cryptography 手札Netkiller Perl 手札Netkiller Docbook 手札Netkiller Project 手札Netkiller Java 手札Netkiller DevOps 手札 操作
Netkiller Java 手札 关于《Netkiller Java 手札》 作者2002年开始在项目中使用Java,各种原因没有留下Java文档,2015因工作需要重新拾起Java并整理本文档。 我的系列文档 编程语言 Netkiller Architect 手札Netkiller Developer 手札Netkiller PHP 手札Netkiller Python 手札Netkiller Testing 手札Netkiller Cryptography 手札Netkiller Perl 手札Net
1896年,意大利人伽利尔摩·马可尼实现了人类历史上首次无线电通信。从此,人类打开了无线电世界的大门。
分布式计划任务设计与实现 摘要 本文主要通过分布式计划任务软件设计讲述分布式软件开发。 我的系列文档 Netkiller Architect 手札 Netkiller Developer 手札 Netkiller PHP 手札 Netkiller Python 手札 Netkiller Testing 手札 Netkiller Cryptography 手札 Netkiller Linux 手札 Netkiller Debian 手札 Netkiller CentOS 手札
怎样制作RPM包 摘要 我在网上找RPM包的制作例子几乎都是C源码编译安装然后生成RPM包, 而我的程序不是C写的很多时候是脚本语言如Python, PHP 甚至是 HTML文件。怎样制作RP
这个特殊的纪念日,是由无线宽带联盟(Wireless Broadband Alliance)确定的,并得到了互联城市咨询委员会 (CCAB)等组织的大力支持。
Glusterfs 我的系列文档 Netkiller Architect 手札 Netkiller Developer 手札 Netkiller PHP 手札 Netkiller Python 手札 Netkiller Testing 手札 Netkiller Cryptography 手札 Netkiller Linux 手札 Netkiller Debian 手札 Netkiller CentOS 手札 Netkiller FreeBSD 手札 Netkiller
Tomcat 安全配置与性能优化 摘要 我的系列文档 Netkiller Architect 手札Netkiller Developer 手札Netkiller PHP 手札Netkiller Python 手札Netkiller Testing 手札Netkiller Cryptography 手札Netkiller Linux 手札Netkiller Debian 手札Netkiller CentOS 手札Netkiller FreeBSD 手札Netkiller Shell 手札Netkiller S
FreeBSD 10 + Nginx 1.4.4 + PHP 5.5.9 + MySQL 5.6.15 摘要 FreeBSD 10.0 的 pkg 无法安装php-fpm 最终采用 posts 编译安装 http://netkiller.github.io/journal/freebsd.php.html 我的系列文档 Netkiller Architect 手札 Netkiller Developer 手札 Netkiller PHP 手札 Netkiller Python 手札 Netk
经过四天多的疲劳轰炸,每天勤跑Session跟Lab,还要加上严重的时差,常常在听Session的过程中不小心睡着,不过在这过程中慢慢有个感觉,Apple 正全力赋予开发者更多的权力,并期望众多的开发者开发出更多优秀的应用,健全生态系,把 Android 遥遥抛在后头。 我有种预感,接下来几年身为开发者将会有更多事情要作,每天会有更多App出来,有更多东西要学,会比以往更忙,压力也更大,但是Apple的确在帮我们这些开发者慢慢创造出一种氛围-在每日敲打键盘的过程当中,你将有机会改变这个世界,就像是今年 W
最近一直在做交互规范总结的工作,在不断梳理页面间跳转逻辑的同时,发现页面间的逻辑关系并不能和页面间跳转的动效很好的结合上。虽然只是零点几秒的切换动效,却能在一定程度上影响用户对于页面间逻辑的认知。为了输出详细的规范,花了大量时间把玩现在公司线上的产品以及国内外优秀的APP,尤其是苹果、谷歌自己开发的APP。(如果某些方面在设计规范中并没有给出答案,就在原生APP中找答案吧!) 转场动效也是在APP中应用最多的动效,连接两个页面。通过合理的动效让户能更清楚我从哪里来,现在在哪,怎么回去等一系列问题。初次接
By 何明桂(http://blog.csdn.net/hmg25) 转载请注明出处
易用性和易学性是密切相关的,但是软件的类型会因为其强调的是易用性还是易学性而相去甚远。
没有了淘宝这一通道,果粉们只能将App Store绑定支付宝或是银行卡进行商品交易。 继在贵州建造数据中心之后,因为淘宝下架iOS虚拟商品一事,苹果再次成为了人们眼中的议论中心,尤其在“果粉”中间,可谓是哀嚎不断! 近日,淘宝官方发布了《关于iOS充值服务类商品管控通知》,对iOS充值服务类商品进行下架处理。 淘宝官方表示: 由于iOS充值类服务的交易特征,长期以来,其交易纠纷、维权相对多发,买卖双方均存在较高的交易风险。 基于市场长期稳定、健康发展考虑。即日起,淘宝网将对包含但不仅限于“iOS,App S
从2007年第一款Kindle发布后,电子阅读硬件这个非常聚焦的赛道已经走过了13个年头。
PHP 安全与性能 摘要 我的系列文档 Netkiller Architect 手札Netkiller Developer 手札Netkiller PHP 手札Netkiller Python 手札Netkiller Testing 手札Netkiller Cryptography 手札Netkiller Linux 手札Netkiller Debian 手札Netkiller CentOS 手札Netkiller FreeBSD 手札Netkiller Shell 手札Netkiller Security
PHP高级编程之守护进程 http://netkiller.github.io/journal/php.daemon.html 摘要 2014-09-01 发表 2015-08-31 更新 我的系列文档 Netkiller Architect 手札 Netkiller Developer 手札 Netkiller PHP 手札 Netkiller Python 手札 Netkiller Testing 手札 Netkiller Cryptography 手札 Netkiller Li
不过“我看见你”和“我触碰你”是不一样的。正好,机缘巧合,最近又与这两个单位想见。大致琢磨了下,貌似vh这个单位可以实现我以前曾希望实现的的整体高度自适应布局。想到这里,自己不由得小兴奋了下,于是决定抽时间研究研究(虽然最近整iPad忙得屁股尿流~~)。
当时的无线电报机,采用的是火花隙式发射机(spark-gap transmitter),主要用来传送摩尔斯电码。
日志归档与数据挖掘 摘要 2013-03-19 第一版 2014-12-16 第二版 我的系列文档 Netkiller Architect 手札 Netkiller Developer 手札 Netkiller PHP 手札 Netkiller Python 手札 Netkiller Testing 手札 Netkiller Cryptography 手札 Netkiller Linux 手札 Netkiller Debian 手札 Netkiller CentOS 手札
本公众号定期更新关于 设计师、程序员发挥创意 互相融合的指南、作品。 主要技术栈: nodejs、react native、electron 本号正在更新的系列有: 写给设计师的人工智能指南 移动App设计之xxxx 数据爬取及可视化系列 技能之xxxx 读书笔记 还有其他杂文。 欢迎关注,转发~ 本文为系列文章: 设计师会编程、程序员懂艺术 的第2篇。 往期直达: 01设计师会编程、程序员懂艺术:设计规范 以下为正文 ---- Semi Flat Design 半扁平化设计 设计师、程序员需要了解的最
领取专属 10元无门槛券
手把手带您无忧上云