首页
沸点
课程
数据标注
HOT
AI Coding
更多
直播
活动
APP
插件
直播
活动
APP
插件
搜索历史
清空
创作者中心
写文章
发沸点
写笔记
写代码
草稿箱
创作灵感
查看更多
登录
注册
确定删除此收藏集吗
删除后此收藏集将被移除
取消
确定删除
确定删除此文章吗
删除后此文章将被从当前收藏集中移除
取消
确定删除
编辑收藏集
名称:
描述:
0
/100
公开
当其他人关注此收藏集后不可再更改为隐私
隐私
仅自己可见此收藏集
取消
确定
面向对象
订阅
乘风破浪姐姐
更多收藏集
微信扫码分享
微信
新浪微博
QQ
11篇文章 · 0订阅
JAVA编程思想(一)通过依赖注入增加扩展性
1. 依赖注入如何提高扩展性 当注入的是接口,再由调用者注入具体接口实现类时就提高了扩展性。 2. 依赖注入的时机把握 通过属性注入,注入的类在类定义时已经固定写死,不可改变;而通过构造器注入和方法注入,则可以由调用者在调用时传入,增加了可扩展性。 通过属性注入和构造器注入,意…
JAVA编程思想(二)如何面向接口编程
1. 接口的本质 接口对调用者封装了实现细节,调用者只需按接口规范使用,而不关心怎么实现,例如我们最常见的数据库连接接口Connection,当通过某个工具包获取Connection后(如HikariPool或者阿里Druid),调用者并不关心实际获取到的是厂家提供的驱动类,还…
JAVA基础(四)枚举(enum)和常量定义,工厂类使用对比
1. 枚举的用途 枚举可以用来定义常量,也可以当作工厂类使用,其相比常量定义,定义可以更集中;相比工厂类,表达is A(某一种类型)的语义更强。 2. 常量定义例子 2.1. 常量定义 2.2. 使用方式 可见,在使用上虽然区别不大,但枚举的好处是在定义时更加集中,好维护,同时…
JAVA编程思想(三)去掉别扭的if,自注册策略模式优雅满足开闭原则
1. 策略模式原型举例 2. 代码 2.1. 税策略代码 2.2. IF语句实现的税策略工厂 可以看到,如果通过if语句来获取不同的税策略,当增加新的税策略时就不得不修改已有代码,当算税方法很多时,就不那么好看,同时也增加了圈复杂度。 2.3. 首次优化 税策略工厂中使用Map…
JAVA编程思想(四)Builder模式经典范式以及和工厂模式如何选?
1. 创建对象实例的方式 在选择以上三种方式创建对象时,不要考虑A方式能不能替代B方式,因为如果它们只是替代关系,那就没有体现它们各自的价值,只有当一个事物有不可替代性时,才有其价值,所以应该考虑的是:我是不是不得不选择它。 如果A,B互相可替代,那么就使用最简单的方式,比如n…
JAVA基础(五)函数式接口-复用,解耦之利刃
1. 函数式接口 接口中只有一个抽象方法的接口称为函数式接口。函数式接口可以通过@FunctionalInterface注解来修饰,也可以不使用该注解,只要接口只有一个抽象方法则可。 2. 函数式接口使用例子 2.1. 服务和消费者 2.2. 使用函数式接口 看到这里,很多人会…
学习分享-学习设计模式
以下是学习设计模式的一些感悟。 1. 不求多,二八原则,掌握最常用的几个 设计模式有很多个,没有必要一开始就立志一下子全都学会,那样付出的代价会很大,好比如果你希望每次考试都考100,那么因此花费的时间和精力会比考90分要多得多。 另外,在实际工作中,有的设计模式并不常用或者干…
Java编程思想(五)事件通知模式解耦过程
1. 原始需求和目标 对于一个android应用,当监测网络变化到wifi时,检查应用是否有新版本,如果有则下载并安装。 通过这个简单的需求,看下如何通过事件通知模式一步步解耦,最终提供一个比较完美的解决方案。 2. 迭代1 需求看起来比较简单,监控下网络变化,如果从非wifi…
Java编程思想(六)单例模式用途
1. 单例模式的特点和用途 单例模式在同一个进程内只有一个实例,不会多次实例化。 由于在同一进程内只有一个实例,不会多次实例化,因此单例模式可以用来缓存数据和在进程内共享数据。 基于这两个特点,单例模式还可以用于在模块间解耦。 2. 单例模式的写法 单例模式的写法有很多种,对于…
Java编程思想(七)使用组合和继承的场景
1. 继承(extends)和实现(implements)的目的 实现(implements)的目的是为了面向接口编程。 继承(extends)的目的是为了获得能力。 2. 继承和实现的使用场景 在决定何时使用组合,何时使用继承前,先看下使用继承和实现的各种场景。 2.1. 只…