设计模式(九):策略模式(Strategy Pattern)
软件开发过程中,当实现某一个功能可能需要支持多种算法或者策略(方案),例如电商促销,可以采用直接打折、满减计算、抵扣券、积分兑换 等方式,可以灵活地根据促销场景选择相应的促销方案(策略)。
每种策略都有自己的算法,选择具体的算法(策略)由客户端决定。策略模式可以将责任与算法分离,使得算法扩展更方便,易维护。
策略模式的实现方式在一定程序上可以解决和优化过多条件判断的操作,但这不是主要目的,只是附加效果。
设计模式(九):策略模式(Strategy Pattern)
软件开发过程中,当实现某一个功能可能需要支持多种算法或者策略(方案),例如电商促销,可以采用直接打折、满减计算、抵扣券、积分兑换 等方式,可以灵活地根据促销场景选择相应的促销方案(策略)。
每种策略都有自己的算法,选择具体的算法(策略)由客户端决定。策略模式可以将责任与算法分离,使得算法扩展更方便,易维护。
策略模式的实现方式在一定程序上可以解决和优化过多条件判断的操作,但这不是主要目的,只是附加效果。
设计模式(八):原型模式(Prototype Pattern)
系统中可能需要创建大量相同或相似对象,如果用构造方法创建则会比较耗时耗费资源,这时就可以使用 原型模式 ,生成对象更高效。
原型模式 就像复印机,可以复印多份相同的;像孙悟空的猴毛,拨下一吹就变出很多个孙悟空一样简单快捷。
设计模式(七):建造者模式(Builder Pattern)
软件系统中,通常会存在一些复杂的对象,由多个部件组成(拥有一系列成员属性,成员属性中有些是引用类型的对象),而部件的组装必须按照一定的顺序,否则不能组装成一个完成的复杂对象。
由于组合部件的过程很复杂,因此,这些部件的组合过程往往被 外部化 ,这里就可以引入 建造者模式
,部件的组合过程由 建造者 负责,建造者 返回客户端一个建造完毕的完整对象,用户无须关系组装细节。
Sharding-JDBC系列(四):Sharding-JDBC 5.x 内置片分算法与实现
特别注意
:此篇内容是基于 Sharding Sphere 5.x 版本(即将发布)的描述,来自官方文档 内置算法。
原因是最初阅读 Sharding Sphere 官方文档时,直接看的是最新版本的文档,几乎全看完了才发现没有切换已发布的 4.x 版本的文档。
从该小节内容可以看出 5.x 相比 4.x 改动是挺大的,4.x 的分片算法需要用户自己实现,而 5.x 版本开始提供了内置分片算法。
Sharding-JDBC系列(三):Sharding-JDBC分片配置示例与说明
本篇描述 Sharding-JDBC 的数据分片的多种配置方式,支持 Java API 配置,Yaml 配置,Spring Boot Starter 配置文件配置,Spring XML 命名空间配置。
Sharding-JDBC 的配置主要包含系统级属性配置 和 分片属性配置,分片算法策略配置,其它的还包括内置分布式序列算法,负载均衡算法,加密算法的配置。
此系列文章都是基于 Sharding-JDBC 4.x
版本, 在写此文章时,正式发布的是 4.1.0
版本,点此 4.x 官方文档。
Java 注解(Annotation)是 JDK 1.5 引入的特性,与类、接口、枚举是在同一等级。它可以作用在类、属性、方法、局部变量、方法参数上,用于对这些元素进行说明,注释,解释。
注解在功能上可以看成是一个接口,注解实例就是一个实现该接口的动态代理类,可在方便在程序运行期间通过反射获取该字段或方法的注解的实例,来决定下一步如何处理。
Sharding-JDBC系列(二):Sharding-JDBC分片、算法、配置、行表达式概念
本篇描述 Sharding-JDBC 分片相关概念,了解相关概念有助于理解 Sharding-JDBC 的使用和配置方式,更好地在项目中应用,有问题时更容易的排查和定位。
Sharding-JDBC 相关概念包有:分片方式包括水平分片和垂直分片;分片算法包括常见的范围分片,取模分片,Hash分片,时间分片等;分表涉及到逻辑表,真实表,绑定表,广播表;基于 Spring Boot Starter 框架使用的行表达式。
此系列文章都是基于 Sharding-JDBC 4.x
版本, 在写此文章时,正式发布的是 4.1.0
版本,点此 4.x 官方文档。
Sharding-JDBC系列(一):Sharding-JDBC介绍、功能、内部结构概览
Sharding-JDBC 已经是一款非常流行、轻量级、易用的客户端侧的数据库中间件。更多认识 Sarding-JDBC 可参考 深度认识 Sharding-JDBC:做最轻量级的数据库中间层 。
Sharding-JDBC 最初是当当自研的数据库中间件,后在开源社区推广流行,后被推荐到 Apache 孵化更名为 Apache ShardingSphere。
此系列文章都是基于 Sharding-JDBC 4.x
版本, 在写此文章时,正式发布的是 4.1.0
版本,点此 4.x 官方文档。
创建型模式 之 简单工厂模式、工厂方法模式、抽象工厂模式。
工厂模式是比较常见,应用较为广泛的模式,工厂模式主要用于创建对象,把对象的创建和使用进行分离。
本篇对这三种工厂模式进行描述和对比分析。
设计模式(Design Pattern) 为面向对象设计中反复出现的问题提供解决方案。
设计模式是对使用 面向对象程序语言 进行 面向对象设计 而总结的方法论,代表了最佳实践,可以使得程序更具 扩展性
、易于修改,易于复用。
设计模式(GOF 23 种) 根据使用目的分为三大类,分别是 创建型模式
、结构型模式
、行为型模式
,每类又可细分为两个子类,分别对应类
和 对象
。
要理解 设计模式,前提是必须深入理解面向对象的三个基本特征:封装,继承、多态。有的把 抽象 也作为面向对象的基本特征,抽象严格来讲应归属于 继承。另外就是还需要对 高内聚、低耦合
略有体会。
此系列是个人对设计模式的理解 和 Java 实现 Demo 的汇总,同时也参考了大量网上的资料或博文,在此表示感谢。
强列推荐闫宏的**《Java 与 模式》,2002年出的书,大师出品,怎么看都不会过时,非常非常好,强烈推荐三次都不为过,看过该本书后我才对何为好书**,何为经典的书有了基本概念,特别是基础理论类的书,经典的书经久不衰。
遗憾的是该书没有新版印刷,但网上可以下载到电子版的。也看过其它设计模式相关的书,开发经验略丰富点的就会感觉到没落地,代码不典型,与实际脱节。