- 博客(31)
- 收藏
- 关注
原创 CentOS下,Xftp中文文件名乱码的处理方式
中文版Windows默认使用GBK编码,现代Linux发行版(如CentOS、Ubuntu等)默认使用UTF-8编码。Windows下正常的编码,可能在linux下无法识别,例如:Windows的GBK字节0xD6D0被Linux用UTF-8解码时,会被误认为是一个无效的UTF-8序列,最终显示为乱码(如��或æˍ‡)。
2025-04-14 17:24:23
477
原创 Java设计模式之迭代器模式
迭代器模式是一种行为设计模式,它提供了一种方法来顺序访问聚合对象中的各个元素,而无需暴露对象的内部表示。其主要作用是将聚合对象的遍历责任交给迭代器对象,从而在不修改聚合类本身的情况下,为聚合对象定义多种遍历方式。
2025-03-25 09:14:49
454
原创 Java设计模式之访问者模式
访问者模式是一种行为设计模式,允许在不修改已有代码的情况下,动态地添加新的操作到对象结构中。它将数据结构与操作解耦,使得可以独立地定义作用于复杂对象结构的操作。
2025-03-24 09:55:49
638
原创 Java设计模式之状态模式
状态模式允许一个对象在其内部状态改变时改变它的行为,使得对象看起来像是修改了它的类。核心思想是将状态相关的行为封装到独立的状态类中,并通过委托方式动态切换状态逻辑。其作用是:1.消除大量条件分支(如 if-else)。2.将状态转换逻辑局部化到具体状态类中。3.提高代码可维护性和扩展性(符合开闭原则)。
2025-03-22 10:22:54
396
原创 Java设计模式之观察者模式
观察者模式(Observer Pattern)是一种软件设计模式,它定义了一种一对多的依赖关系,让多个观察者对象同时监听某一个主题对象。当主题对象状态发生变化时,会通知所有观察者对象,使它们能够自动更新自己。观察者模式的主要作用是实现对象之间的动态耦合,让一个对象的改变能够自动通知并更新其他相关对象。这种模式在需要维护一致性和同步性的地方非常有用。
2025-03-22 10:22:21
595
原创 Java设计模式之备忘录模式
备忘录模式适用于需要保存一个对象的状态快照,以便在将来恢复到这个状态的场景。备忘录模式是一种行为设计模式,它让你能够保存一个对象的内部状态,以便在适当的时候恢复对象的先前状态。1.封装性:它将发起人对象的状态封装在备忘录对象中,外界无法访问备忘录对象中的状态信息,从而保证了发起人对象的封装性。1.资源消耗:如果对象的状态信息很多,那么保存每个状态的备忘录对象会占用较多的内存资源,可能导致性能问题。相比之下,备忘录模式通过将状态保存和恢复的职责分离到独立的类中,提供了更清晰、灵活和可扩展的解决方案。
2025-03-21 09:52:13
601
原创 Java设计模式之中介者模式
中介者模式通过集中管理对象交互解决了复杂依赖问题,适用于多对象协作场景。不使用时,对象间直接依赖会导致系统僵化、难以维护。选择中介者模式的权衡点在于中介者的复杂度和系统扩展需求。
2025-03-21 09:51:36
534
原创 Java设计模式之责任链模式
责任链模式通过链式传递和动态组合解决了条件分支的硬编码问题,尤其适用于需要多级处理的场景。其核心价值在于将处理逻辑分散到独立的类中,提升代码的可维护性和扩展性。
2025-03-20 09:38:10
589
原创 Java设计模式之命令模式
命令模式通过 封装请求为对象,将操作的具体实现与调用者解耦,从而解决了上述问题。对于需要支持复杂操作管理(如撤销、重做、事务)的场景,命令模式是更优的设计选择。而对于简单的一次性操作,直接调用可能更高效。
2025-03-20 09:37:02
608
原创 CentOS7下,Jenkins完整安装、配置和备注
刚安装完Jenkins,最引人注目的,大概就是右上角的黄色和红色警告了。1.1.这里的黄色警告,提示你有新版本的Jenkins可用。1.2.这里的红色警告,提示你有些插件有安全问题。秉承着“能用不懂就不要瞎动”的原则,以上警告能忽略就忽略吧,除非你确实需要解决某个问题。这个页面有许多内容我们需要熟悉。
2025-03-19 17:45:48
1179
原创 处理VMware Workstation 17 Pro安装好VMware Tools以后,仍然无法实现Windows10和虚拟机间互传文件的问题
主要原理:VMware设置一个Windows10的文件夹作为共享文件的空间,之后文件(夹)就可以在该文件夹内实现共享。
2025-03-19 17:41:06
441
原创 IDEA插件实现GitFlow工作流管理
GitFlow 本身是 Git 的拓展和延伸,是为了更方便开发和管理项目所提出的,其本质还是 Git。GitFlow 灵活性较高,这点跟 Git 一样,可以根据自身需求来实际使用,不必过分契合分支模型。
2025-03-19 17:32:38
830
原创 一个成功的Git分支模型
虽然这个分支模型并没有什么真正令人震惊的新东西,但这篇文章开头的“大图”表现出在我们的项目中非常有用。它形成了一个优雅的心理模型,易于理解,并允许团队成员对分支和发布过程形成共同的理解。本文翻译自网络:https://nvie.com/posts/a-successful-git-branching-model本文由飞翔中文网「feixiang.net」翻译。
2025-03-19 17:28:27
1528
原创 Java设计模式之策略模式
策略模式属于行为型设计模式,通过定义一系列算法(策略),将每个算法封装成独立类,并使它们可以互相替换。这种模式让算法的变化独立于使用它的客户端,提升灵活性和可维护性。主要作用:1.消除冗长的条件分支语句(如 if-else 或 switch)。2.提高代码扩展性,新增策略无需修改现有代码(符合开闭原则)。场景
2025-03-19 09:23:50
182
原创 Java设计模式之模板方法模式
模板方法模式是一种行为型设计模式,它定义了一个算法的骨架,允许子类在不改变算法结构的情况下重定义某些步骤。父类通过模板方法控制流程,子类通过实现抽象方法填充细节。
2025-03-19 09:23:15
553
原创 Java设计模式之代理模式
代理模式是一种结构型设计模式,它允许为其他对象提供一种代理以控制对这个对象的访问。代理对象在客户端和目标对象之间起到中介作用,可以在目标对象执行某些操作前后添加额外的功能。如果不使用代理模式,我们可能需要直接在目标对象的方法中添加额外的功能,或者通过继承目标类并重写方法来实现。综上所述,代理模式是一种非常实用的设计模式,在需要增强对象功能、控制对象访问等场景下具有广泛的应用价值。动态代理可以在运行时为不同目标对象生成代理,具有很高的灵活性。需要修改目标类的代码或继承目标类,违反了开闭原则。
2025-03-18 09:44:05
721
原创 Java设计模式之享元模式
享元模式是一种结构型设计模式,通过共享对象来减少内存占用和对象创建开销。它将对象状态分为:1.内部状态(Intrinsic):可共享的、不变的部分(如颜色)。2.外部状态(Extrinsic):不可共享的、变化的部分(如位置、半径)。
2025-03-18 09:43:00
492
原创 Java设计模式之外观模式
外观模式 是一种结构型设计模式,通过提供一个统一的高层接口,屏蔽子系统的复杂性,简化客户端调用。其核心是将一组复杂接口封装成一个更简单的接口,降低客户端与子系统的耦合。
2025-03-17 09:32:54
381
原创 Java设计模式之装饰器模式
装饰器模式是一种结构型设计模式,允许在运行时动态地给对象添加额外的功能或职责。它通过创建装饰器类来包装原始对象,从而在不修改原始类代码的情况下扩展其功能。需要动态地给对象添加功能或职责,且这些功能或职责可以随时添加和移除。需要避免通过继承进行功能扩展,因为继承会导致类的层次结构过于复杂。
2025-03-17 09:32:07
239
原创 Java设计模式之组合模式
组合模式(Composite Pattern)是一种将对象组合成树形结构以表示“部分-整体”的层次结构。它使得用户可以以统一的方式处理单个对象和组合对象。在公司员工层级关系中,组合模式可以用来表示员工和部门之间的关系。
2025-03-15 10:45:23
150
原创 Java设计模式之桥接模式
桥接模式是一种结构型设计模式,它的核心思想是将抽象部分与实现部分分离,使它们可以独立变化。通过桥接模式,可以将那些有两个维度(或更多维度)变化的事物进行解耦。
2025-03-15 10:44:31
410
原创 Java设计模式之适配器模式
适配器模式(Adapter Pattern)是软件设计模式中的一种结构型模式,用于将一个类的接口转换成客户希望的另一个接口,使得原本由于接口不兼容而不能一起工作的那些类可以一起工作。它主要分为类适配器和对象适配器两种实现方式。
2025-03-14 09:26:00
282
原创 Java设计模式之原型模式
原型模式(Prototype Pattern)是一种创建型设计模式,允许你复制现有对象而不必深入理解其复杂结构。它通过复制原型对象来创建新对象,新对象是原型对象的一个精确副本,包括其内部状态。
2025-03-14 09:25:08
356
原创 Java设计模式之建造者模式
建造者模式是一种创建型设计模式,其核心思想是将一个复杂对象的构建与其表示分离,使得同样的构建过程可以创建不同的表示。在这个例子中,如果不使用建造者模式,创建电脑对象时必须提供所有参数,或者要配合构造函数的重载来使用。建造者模式的每个参数都有明确的方法名,调用时不容易混淆参数顺序。当对象的属性增加或修改时,建造者模式只需要在建造者类中进行调整,而重载构造方法可能需要添加或修改多个构造方法,维护成本较高。综上所述,建造者模式在创建复杂对象时具有明显的优势,能够提高代码的可读性、灵活性和可维护性。
2025-03-13 14:02:49
367
原创 Java设计模式之抽象工厂模式
抽象工厂模式是一种创建型设计模式,它提供了一种方式,可以创建一系列相关或相互依赖的对象,而无需指定它们具体的类。抽象工厂模式强调的是一个工厂类可以创建一组相关的产品对象,这些对象通常属于一个产品族。客户端代码直接依赖于具体产品类(如WindowsButton、MacButton等),如果需要添加新的产品族(如Linux风格的UI组件),必须修改客户端代码,违反了开闭原则。如果需要支持新的产品族(如Linux风格的UI组件),只需添加一个新的具体工厂和具体产品,无需修改现有代码。
2025-03-13 14:01:25
300
原创 Java设计模式之工厂方法模式
开闭原则(Open-Closed Principle, OCP)是软件设计中的一项核心原则,由伯特兰·梅耶(Bertrand Meyer)提出。软件实体(类、模块、函数等)应该对扩展开放,对修改关闭。
2025-03-12 16:08:56
568
原创 Java程序设计中,封装、继承和多态的概念
封装:保护数据的完整性和安全性,防止未经授权的访问和修改。继承:实现代码的重用和扩展,创建层次化的类结构。多态:编写更加通用和灵活的代码,实现接口的多样化实现。这些特性在现实开发中都有广泛的应用,可以帮助开发者编写更加健壮、可维护和可扩展的代码。
2025-01-24 14:14:24
655
原创 Optional源码解析和示例解析
如果存在一个值,则使用该值调用指定的处理者(进行操作),否则不做任何操作。类型的对象中的值应用到一个函数上,并且这个函数返回的也是一个。③当前存在的值通过 equals() 方法被认为是“相等”的。如果存在值,则返回该值的哈希码值;如果没有值存在,则返回 0。” 作为参数传递给它。如果存在一个值,则返回 true,否则返回 false。包含一个值,那么这个值会被函数处理,否则返回一个空的。是空的或者包含的值不满足条件,那么返回一个空的。如果存在值,则返回该值;,它接受一个字符串并返回一个包含字符串长度的。
2024-08-05 09:25:49
1331
1
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人