问题产生的原因之前在学习函数式编程时,已经接触到了默认方法。最近在看别的书时,对默认方法有了更多的认知,抽空记录下总结与示例。 传统上来说,实现接口的类必须为接口中定义的每个方法提供一个实现,或者从父类中继承它的实现。但是,一旦类库的设计者需要更新接口,向其中加入新的方法,这种方式就会出现问题,因为打破了二进制的...
Factory Method模式如果将Template Method模式用于生成实例,它就会演变为Factory Method模式。在Factory Method模式中,父类决定实例的生成方式,但不决定所要生成的具体类,具体的类全部交个子类处理。这样就可以将生成实例的framework和实际负责生成实例类解耦。 ...
Template Method模式在父类中定义处理流程的框架,在子类中实现具体的模式就是Template Method模式。在Template Method模式中,处理的流程被定义在父类中,而具体的处理则交个子类。 实现 AbstractDisplay.java CharDisplay.java Str...
Adapter模式适配器位于实际情况与需求之间,填补两者之间的差异。这种用于填补“现有的程序”和“所需的程序”之间的差异的设计模式就是Adapter模式。Adapter模式有以下两种。 类适配器模式(使用继承) 对象适配器模式(使用委托) 类适配器模式 Print.java Banner.jav...
Iterator模式当我们想要访问集合或是数组中每个元素时通常会使用for循环的形式。将循环变量i的作用抽象化、通用化后形成的模式,在设计模式中称为Iterator模式。Iterator模式用于在数据集合中按照顺序遍历集合。 实现 Aggregate.java Iterator.java Book.ja...
Git是最先进的分布式版本控制系统,相比SVN具有强大的分支管理以及处理速度。如果你仍然在使用SVN,也许应该考虑下使用git了。 设置个人信息首先在git bash中设置个人的账户信息,global参数声明此配置应用于全局git仓库,你也可以对不同版本库指定不同的账户信息。 生成公钥与私钥,执行后会让你指...
这两天完善了下nginx的配置,包括配置HTTPS服务器,简单记录一下配置。 httpnginx主配置没有修改什么东西,只是加上了时区(东八区)方便查看日志。 service基础配置与SSL相关的配置以及防盗链配置(匹配图片请求,然后判断referer)。 防爬虫可以直接写在service中,或者写在单...
抽时间换个主题,默认的不好看。 现在发现好久不用 markdown,语法忘记了不少。不过没关系,之后坚持写就好。
第 8 页 / 共 8 页