设计模式篇
文章平均质量分 89
设计模式专栏致力于解析软件开发中常用的设计模式,帮助读者构建更可维护、可扩展和灵活的代码。在这里,你将了解各种类型的设计模式,包括创建型、结构型和行为型,每种模式都会通过动机、结构、示例和优缺点进行详细解释。
玦尘、
AIGC时代
展开
-
策略模式详解
该模式定义了一系列算法,并将每个算法封装起来,使它们可以相互替换,且算法的变化不会影响使用算法的客户。策略模式属于对象行为模式,它通过对算法进行封装,把使用算法的责任和算法的实现分割开来,并委派给不同的对象对这些算法进行管理。原创 2024-05-15 18:25:56 · 881 阅读 · 0 评论 -
模版方法详解
定义一个操作中的算法骨架,而将算法的一些步骤延迟到子类中,使得子类可以不改变该算法结构的情况下重定义该算法的某些特定步骤。原创 2024-05-15 17:48:29 · 222 阅读 · 0 评论 -
享元模式详解
运用共享技术来有效地支持大量细粒度对象的复用。它通过共享已经存在的对象来大幅度减少需要创建的对象数量、避免大量相似对象的开销,从而提高系统资源的利用率。原创 2024-05-14 06:00:00 · 684 阅读 · 0 评论 -
组合模式详解
又名部分整体模式,是用于把一组相似的对象当作一个单一的对象。组合模式依据树形结构来组合对象,用来表示部分以及整体层次。这种类型的设计模式属于结构型模式,它创建了对象组的树形结构。原创 2024-05-12 17:25:39 · 782 阅读 · 0 评论 -
外观模式详解
又名门面模式,是一种通过为多个复杂的子系统提供一个一致的接口,而使这些子系统更加容易被访问的模式。该模式对外有一个统一接口,外部应用程序不用关心内部子系统的具体的细节,这样会大大降低应用程序的复杂度,提高了程序的可维护性。原创 2024-05-12 16:00:00 · 849 阅读 · 0 评论 -
桥接模式详解
将抽象与实现分离,使它们可以独立变化。它是用组合关系代替继承关系来实现,从而降低了抽象和实现这两个可变维度的耦合度。原创 2024-05-12 11:18:23 · 224 阅读 · 0 评论 -
装饰者模式详解
快餐店有炒面、炒饭这些快餐,可以额外附加鸡蛋、火腿、培根这些配菜,当然加配菜需要额外加钱,每个配菜的价钱通常不太一样,那么计算总价就会显得比较麻烦。原创 2024-05-11 23:30:24 · 491 阅读 · 0 评论 -
适配器模式详解
如果去欧洲国家去旅游的话,他们的插座如下图最左边,是欧洲标准。而我们使用的插头如下图最右边的。因此我们的笔记本电脑,手机在当地不能直接充电。所以就需要一个插座转换器,转换器第1面插入当地的插座,第2面供我们充电,这样使得我们的插头在当地能使用。生活中这样的例子很多,手机充电器(将220v转换为5v的电压),读卡器等,其实就是使用到了适配器模式。原创 2024-05-11 17:37:05 · 620 阅读 · 0 评论 -
代理模式详解
由于某些原因需要给某对象提供一个代理以控制对该对象的访问。这时,访问对象不适合或者不能直接引用目标对象,代理对象作为访问对象和目标对象之间的中介。Java中的代理按照代理类生成时机不同又分为静态代理和动态代理。静态代理代理类在编译期就生成,而动态代理代理类则是在Java运行时动态生成。动态代理又有JDK代理和CGLib代理两种。原创 2024-05-08 20:15:00 · 794 阅读 · 0 评论 -
建造者模式详解
将一个复杂对象的构建与表示分离,使得同样的构建过程可以创建不同的表示。原创 2024-05-08 10:56:32 · 702 阅读 · 0 评论 -
原型模式详解
用一个已经创建的实例作为原型,通过复制该原型对象来创建一个和原型对象相同的新对象。原创 2024-05-07 23:08:07 · 282 阅读 · 0 评论 -
工厂模式详解
需求:设计一个咖啡店点餐系统。设计一个咖啡类(Coffee),并定义其两个子类(美式咖啡【AmericanCoffee】和拿铁咖啡【LatteCoffee】);再设计一个咖啡店类(CoffeeStore),咖啡店具有点咖啡的功能。具体类的设计如下:在java中,万物皆对象,这些对象都需要创建,如果创建的时候直接new该对象,就会对该对象耦合严重,假如我们要更换对象,所有new对象的地方都需要修改一遍,这显然违背了软件设计的开闭原则。原创 2024-05-08 04:00:00 · 883 阅读 · 0 评论 -
单例设计模式详解
单例模式(Singleton Pattern)是 Java 中最简单的设计模式之一。这种类型的设计模式属于创建型模式,它提供了一种创建对象的最佳方式。这种模式涉及到一个单一的类,该类负责创建自己的对象,同时确保只有单个对象被创建。这个类提供了一种访问其唯一的对象的方式,可以直接访问,不需要实例化该类的对象。原创 2024-05-07 07:15:00 · 1851 阅读 · 0 评论