0%

抽象类是一种自底向上的思考过程, 先有各种子类, 然后针对同一类型的子类的共同实现提取出来, 放到父类中, 对不同的实现方法, 使用抽象方法代替.

接口是一种自上而下的思考方式, 先确定该有哪些行为, 然后针对子类进行各自不同的实现.

阅读全文 »

面向对象的代码, 对我来说, 一直感觉很高级, 但是好奇是否真的有企业在用, 因为一直没听过什么人用, 这篇解决了我长久以来以来的困惑.

面向对象的编码方式虽然很好, 但其实并不流行.

真实的项目需要简单易上手, 人人都可以开发, 面向对象的开发方式(充血模型)的门槛还是比较高的.

并且面向对象的开发是需要经过良好的面向对象分析和设计, 这些要求在项目中也很难达到.

所以在企业开发中, Javaver 更多的是 a CRUD boy.

阅读全文 »

哈希算法在开发中有很常见的应用, 但是也仍然存在一些问题.

在 nginx 中作为一种路由策略, 如果添加或删除路由节点, 会导致路由发生大规模的变化;

在分布式缓存系统中, 如果添加或删除节点, 会导致缓存大规模的失效.

对于这些敏感的使用场景, 哈希算法并不能发挥很好的作用, 因此也就有了改良后的一致性哈希算法.

阅读全文 »

本篇学习面向对象的四大基本特性的定义及其作用.

封装

封装, 也就是访问控制,

封装可以隐藏一个类或对象的内部实现, 只展示必要的接口行为;

封装限制了外部程序对内部属性的访问, 提高了代码的可维护性;

同时客户端程序员只需要关注公开的方法, 提高了代码的易用性.

抽象

无论是设计单个对象, 还是多个对象之间的关系, 都要强调外部行为, 忽略其使用细节, 也就是面向接口编程;

良好的抽象可以设计出更易维护和扩展的程序.

继承

从语言的语法机制层面, 定义对象与对象之间的 is-a 关系, 提高了代码的复用性, 但同时也可能带来代码的高耦合.

Java 只支持单继承, 确保了所有对象都有统一的行为, 方便开发;

有些语言支持多继承, 如 C++, 语言更灵活, 但是会出现菱形继承问题, 需要程序员自己去构建统一的对象层次结构.

多态

父类对子类进行引用, 程序可以根据父类所引用的实际子类而产生不同的行为;

通过语言的支持, 多态提供了面向接口编程的一种应用方式, 提高了代码的复用性, 以及可扩展性.

阅读全文 »

什么是对象

对象是现实世界中概念的映射, 其拥有自己的属性, 行为和唯一标识.

面向对象编程

面向对象编程是一种编程范式, 通过基于现实世界的概念来建模, 围绕类和对象来解决问题的一种编程方式.

阅读全文 »

这里主要推荐一个开源的 vim 插件, 可以很方便的使用.

这个插件里面集成了其他丰富的插件, 我也没怎么使用过, 所以在这里记录下自己遇到的也常用的使用方式.
插件地址

阅读全文 »