会员
周边
新闻
博问
闪存
赞助商
Chat2DB
所有博客
当前博客
我的博客
我的园子
账号设置
会员中心
简洁模式
...
退出登录
注册
登录
SevenCoding
博客园
首页
新随笔
联系
订阅
管理
上一页
1
···
10
11
12
13
14
15
16
17
18
19
下一页
2025年3月12日
【设计模式】告别冗长if-else语句:使用策略模式优化代码结构
摘要: 概述 先看下面的图片,我们去旅游选择出行模式有很多种,可以骑自行车、可以坐汽车、可以坐火车、可以坐飞机。 作为一个程序猿,开发需要选择一款开发工具,当然可以进行代码开发的工具有很多,可以选择Idea进行开发,也可以使用eclipse进行开发,也可以使用其他的一些开发工具。 定义:该模式定义了一系列算
阅读全文
posted @ 2025-03-12 11:38 程序员Seven
阅读(1024)
评论(0)
推荐(1)
2025年3月11日
【设计模式】掌握算法骨架:利用模板方法模式实现代码复用
摘要: 概述 在面向对象程序设计过程中,程序员常常会遇到这种情况:设计一个系统时知道了算法所需的关键步骤,而且确定了这些步骤的执行顺序,但某些步骤的具体实现还未知,或者说某些步骤的实现与具体的环境相关。 例如,去银行办理业务一般要经过以下4个流程:取号、排队、办理具体业务、对银行工作人员进行评分等,其中取号
阅读全文
posted @ 2025-03-11 13:08 程序员Seven
阅读(82)
评论(0)
推荐(0)
【设计模式】享元模式教你如何分离内部与外部状态
摘要: 概述 定义: 运用共享技术来有效地支持大量细粒度对象的复用。它通过共享已经存在的对象来大幅度减少需要创建的对象数量、避免大量相似对象的开销,从而提高系统资源的利用率。 结构 享元(Flyweight )模式中存在以下两种状态: 内部状态,即不会随着环境的改变而改变的可共享部分。 外部状态,指随环境改
阅读全文
posted @ 2025-03-11 13:04 程序员Seven
阅读(69)
评论(0)
推荐(0)
【设计模式】利用组合模式带你走进树形结构的世界
摘要: 概述 对于这个图片肯定会非常熟悉,上图我们可以看做是一个文件系统,对于这样的结构我们称之为树形结构。在树形结构中可以通过调用某个方法来遍历整个树,当我们找到某个叶子节点后,就可以对叶子节点进行相关的操作。可以将这颗树理解成一个大的容器,容器里面包含很多的成员对象,这些成员对象可以容器对象也可以是叶子
阅读全文
posted @ 2025-03-11 13:00 程序员Seven
阅读(144)
评论(0)
推荐(0)
【设计模式】从智能音箱到软件设计:探索外观模式的实际应用案例
摘要: 概述 有些人可能炒过股票,但其实大部分人都不太懂,这种没有足够了解证券知识的情况下做股票是很容易亏钱的,刚开始炒股肯定都会想,如果有个懂行的帮手就好,其实基金就是个好帮手,支付宝里就有许多的基金,它将投资者分散的资金集中起来,交由专业的经理人进行管理,投资于股票、债券、外汇等领域,而基金投资的收益归
阅读全文
posted @ 2025-03-11 12:55 程序员Seven
阅读(58)
评论(0)
推荐(0)
【设计模式】如何通过桥接模式解决系统扩展难题?
摘要: 概述 现在有一个需求,需要创建不同的图形,并且每个图形都有可能会有不同的颜色。我们可以利用继承的方式来设计类的关系: 我们可以发现有很多的类,假如我们再增加一个形状或再增加一种颜色,就需要创建更多的类。 试想,在一个有多种可能会变化的维度的系统中,用继承方式会造成类爆炸,扩展起来不灵活。每次在一个维
阅读全文
posted @ 2025-03-11 12:42 程序员Seven
阅读(67)
评论(0)
推荐(0)
【设计模式】告别继承噩梦:用装饰者模式简化代码结构
摘要: 概述 我们先来看一个快餐店的例子。 快餐店有炒面、炒饭这些快餐,可以额外附加鸡蛋、火腿、培根这些配菜,当然加配菜需要额外加钱,每个配菜的价钱通常不太一样,那么计算总价就会显得比较麻烦。 使用继承的方式存在的问题: 扩展性不好:如果要再加一种配料(火腿肠),我们就会发现需要给FriedRice和Fri
阅读全文
posted @ 2025-03-11 12:38 程序员Seven
阅读(120)
评论(0)
推荐(0)
【设计模式】如何使用适配器模式让不兼容的类协同工作?
摘要: 概述 如果去欧洲国家旅游的话,他们的插座如下图最左边,是欧洲标准。而我们使用的插头如下图最右边的。因此我们的笔记本电脑,手机在当地不能直接充电。所以就需要一个插座转换器,转换器第1面插入当地的插座,第2面供我们充电,这样使得我们的插头在当地能使用。生活中这样的例子很多,手机充电器(将220v转换为5
阅读全文
posted @ 2025-03-11 11:55 程序员Seven
阅读(56)
评论(0)
推荐(0)
【设计模式】从火车站卖票看代理模式的实际应用
摘要: 概述 由于某些原因需要给某对象提供一个代理以控制对该对象的访问。这时,访问对象不适合或者不能直接引用目标对象,代理对象作为访问对象和目标对象之间的中介。 Java中的代理按照代理类生成时机不同又分为静态代理和动态代理。静态代理类在编译期就生成,而动态代理代理类则是在Java运行时动态生成。动态代理又
阅读全文
posted @ 2025-03-11 08:15 程序员Seven
阅读(378)
评论(0)
推荐(4)
2025年3月10日
【设计模式】掌握建造者模式:如何优雅地解决复杂对象创建难题?
摘要: 概述 将一个复杂对象的构建与表示分离,使得同样的构建过程可以创建不同的表示。 分离了部件的构造(由Builder来负责)和装配(由Director负责)。 从而可以构造出复杂的对象。这个模式适用于:某个对象的构建过程复杂的情况。 由于实现了构建和装配的解耦。不同的构建器,相同的装配,也可以做出不同的
阅读全文
posted @ 2025-03-10 22:52 程序员Seven
阅读(36)
评论(0)
推荐(0)
2025年3月6日
【设计模式】从零开始,用原型模式简化你的Java对象创建过程!
摘要: 概述 用一个已经创建的实例作为原型,通过复制该原型对象来创建一个和原型对象相同的新对象。 结构 原型模式包含如下角色: 抽象原型类:规定了具体原型对象必须实现的的 clone() 方法。 具体原型类:实现抽象原型类的 clone() 方法,它是可被复制的对象。 访问类:使用具体原型类中的 clone
阅读全文
posted @ 2025-03-06 08:15 程序员Seven
阅读(58)
评论(0)
推荐(0)
2025年3月5日
【设计模式】解密工厂模式:从简单到抽象的设计之旅
摘要: 概述 需求:设计一个咖啡店点餐系统。 设计一个咖啡类(Coffee),并定义其两个子类(美式咖啡【AmericanCoffee】和拿铁咖啡【LatteCoffee】);再设计一个咖啡店类(CoffeeStore),咖啡店具有点咖啡的功能。 具体类的设计如下: 在java中,万物皆对象,这些对象都需要
阅读全文
posted @ 2025-03-05 22:04 程序员Seven
阅读(52)
评论(0)
推荐(0)
2025年3月4日
【设计模式】破解单例模式:反射、序列化与克隆攻击的防御之道
摘要: 可能有的小伙伴看了我上一篇文章里几种方式对比的表格,觉得枚举有缺点,为什么Joshua Bloch还推荐使用枚举? 这就要提到单例的破解了。普通的单例模式是可以通过反射和序列化/反序列化来破解的,而Enum由于自身的特性问题,是无法破解的。当然,由于这种情况基本不会出现,因此我们在使用单例模式的时候
阅读全文
posted @ 2025-03-04 08:15 程序员Seven
阅读(157)
评论(0)
推荐(0)
2025年3月3日
【设计模式】单例模式深度解析:从饿汉式到枚举实现的全方位解读
摘要: 单例设计模式概念 就是采取一定的方法保证在整个的软件系统中,对某个类只能存在一个对象实例,并且该类只提供一个取得其对象实例的方法。如果我们要让类在一个虚拟机中只能产生一个对象,我们首先必须将类的构造器的访问权限设置为private,这样,就不能用new操作符在类的外部产生类的对象了,但在类内部仍可以
阅读全文
posted @ 2025-03-03 08:15 程序员Seven
阅读(391)
评论(0)
推荐(1)
2025年2月27日
深度解析分布式事务的七大核心方案
摘要: 2PC 2PC,两阶段提交,将事务的提交过程分为资源准备和资源提交两个阶段,并且由事务协调者来协调所有事务参与者,如果准备阶段所有事务参与者都预留资源成功,则进行第二阶段的资源提交,否则事务协调者回滚资源。 第一阶段:准备阶段 由事务协调者询问通知各个事务参与者,是否准备好了执行事务,具体流程图如下
阅读全文
posted @ 2025-02-27 08:15 程序员Seven
阅读(147)
评论(0)
推荐(1)
2025年2月25日
幂等性:如何通过设计避免重复操作的影响?
摘要: 概述 定义 幂等概念来自数学,表示对数据源做N次变换和1次变换的结果是相同的。 在计算机中编程中,一个幂等操作的特点是其任意多次执行所产生的影响均与一次执行的影响相同。幂等函数或幂等方法是指可以使用相同参数重复执行,并能获得相同结果的函数。这些函数不会影响系统状态,也不用担心重复执行会对系统造成改变
阅读全文
posted @ 2025-02-25 08:15 程序员Seven
阅读(573)
评论(1)
推荐(1)
2025年2月24日
解密ZAB协议:Zookeeper一致性的核心实现
摘要: 一致性问题 设计一个分布式系统必定会遇到一个问题—— 因为分区容忍性(partition tolerance)的存在,就必定要求我们需要在系统可用性(availability)和数据一致性(consistency)中做出权衡 。这就是著名的 CAP 定理。 ZooKeeper 的处理方式,保证了 C
阅读全文
posted @ 2025-02-24 08:15 程序员Seven
阅读(495)
评论(0)
推荐(1)
2025年2月20日
为什么Raft算法是分布式系统的首选?
摘要: 背景 当今的数据中心和应用程序在高度动态的环境中运行,为了应对高度动态的环境,它们通过额外的服务器进行横向扩展,并且根据需求进行扩展和收缩。同时,服务器和网络故障也很常见。 因此,系统必须在正常操作期间处理服务器的上下线。它们必须对变故做出反应并在几秒钟内自动适应;对客户来说的话,明显的中断通常是不
阅读全文
posted @ 2025-02-20 08:15 程序员Seven
阅读(582)
评论(3)
推荐(2)
2025年2月18日
Paxos算法:如何解决分布式系统中的共识问题?
摘要: 背景 Paxos 算法是 Leslie Lamport(莱斯利·兰伯特)在 1990 年提出了一种分布式系统 共识 算法。这也是第一个被证明完备的共识算法(前提是不存在拜占庭将军问题,也就是没有恶意节点)。 为了介绍 Paxos 算法,兰伯特专门写了一篇幽默风趣的论文。在这篇论文中,他虚拟了一个叫做
阅读全文
posted @ 2025-02-18 08:15 程序员Seven
阅读(352)
评论(0)
推荐(1)
2025年2月17日
CAP与BASE:分布式系统设计的灵魂与妥协
摘要: CAP 理论 CAP理论起源于 2000 年,由加州大学伯克利分校的 Eric Brewer 教授在分布式计算原理研讨会(PODC)上提出,因此 CAP 定理又被称作 布鲁尔定理(Brewer’s theorem) 2 年后,麻省理工学院的 Seth Gilbert 和 Nancy Lynch 发表
阅读全文
posted @ 2025-02-17 08:15 程序员Seven
阅读(495)
评论(0)
推荐(1)
上一页
1
···
10
11
12
13
14
15
16
17
18
19
下一页
公告