设计模式篇
学习设计模式
wupanP
这个作者很懒,什么都没留下…
展开
-
说说策略模式在我们生活的场景?
条条大路通罗马,条条大路通北京。我们去北京的交通方式(策略)很多,比如说坐飞机、坐高铁、自己开车等方式。每一种方式就可以理解为每一种策略。这就是生活中的策略模式。策略模式是指定义一系列算法,将每个算法都封装起来,并且使他们之间可以相互替换。原创 2024-08-05 19:48:40 · 73 阅读 · 0 评论 -
享元模式和单例模式的区别?
享元模式可以有多个享元实例,但这些实例会共享部分状态。单例模式一个类只有一个实例。原创 2024-08-05 19:46:07 · 122 阅读 · 0 评论 -
知道享元模式吗?
通过共享已经存在的对象来减少内存消耗,从而提高系统性能。享元模式特别适用于那些数量庞大、创建代价高昂、且内容相同或相似的对象。原创 2024-08-05 19:35:02 · 286 阅读 · 0 评论 -
模板方法模式
模板方法模式(Template Method Pattern)是一种行为型设计模式,它定义了一个操作中的算法骨架,而将一些步骤延迟到子类中实现。模板方法使得子类可以在不改变算法结构的情况下,重新定义算法中的某些步骤。原创 2024-08-05 19:18:08 · 315 阅读 · 0 评论 -
代理模式和装饰器模式有什么区别?
都是结构型模式,代理模式重在访问权限的控制,而装饰器模式重在功能的加强。原创 2024-08-05 19:12:03 · 327 阅读 · 0 评论 -
装饰器模式是什么
装饰器模式是指动态地给一个对象增加一些额外的功能,同时又不改变其结构。装饰模式是继承的一个替代模式,装饰模式可以动态扩展一个实现类的功能。通过组合而不是继承来扩展对象功能,避免了创建大量子类的问题。装饰器模式的核心思想是通过将对象包装在装饰器对象中,以动态地为其增加功能,而不改变对象的结构。下面是一个简单的例子,演示如何使用装饰器模式来动态地增加功能。假设我们有一个简单的接口 Shape,表示图形。我们可以用装饰器模式来为这些图形动态地增加功能,比如颜色边框。原创 2024-08-05 19:10:52 · 306 阅读 · 0 评论 -
抽象工厂模式
修改现有代码:简单工厂模式在新增产品时需要修改工厂类代码,不符合开闭原则;抽象工厂模式只需添加新的具体工厂类,无需修改已有代码,符合开闭原则。代码结构:简单工厂模式结构简单,适用于产品种类较少的情况;抽象工厂模式结构更复杂,但更灵活,适用于产品种类多且变化频繁的情况。扩展性:抽象工厂模式的扩展性更好,可以轻松添加新的产品和工厂,而不影响现有代码。原创 2024-08-05 18:37:04 · 134 阅读 · 0 评论 -
说说简单工厂模式
由一个工厂类根据传入的参数决定创建哪一种产品类的实例。原创 2024-08-05 18:24:47 · 108 阅读 · 0 评论 -
说说你对代理模式的理解
在这个例子中,ProxyImage 类作为 RealImage 的代理。第二次调用 display 方法时,ProxyImage 直接调用已经创建的 RealImage 实例的 display 方法,而不再重新加载图像。黄牛卖火车票:没有流行网络购票的年代是很喜欢找黄牛买火车票的,因为工作忙的原因,没时间。婚姻介绍所:婚姻介绍所的工作人员,搜集单身人士信息,婚介所的工作人员为这个单身人士找对。代理模式是给某一个对象提供一个代理,并由代理对象控制对原对象的引用。象,这个过程也是代理模式的生活案例。原创 2024-08-05 18:08:35 · 307 阅读 · 0 评论 -
说说什么是单例模式
在这个例子中,Singleton类通过一个私有构造函数来防止外部实例化,并通过一个静态方法 getInstance() 来返回类的唯一实例。如果实例不存在,它会创建一个实例;单例模式是一种设计模式,它限制一个类只能创建一个实例。这样可以确保某个类在整个应用程序中只有一个对象实例存在。通过一个私有构造函数来防止外部实例化,意味着该类的构造函数被标记为私有的,因此在类的外部不能直接使用 new 关键字来创建该类的实例。通过单例模式,可以确保类的实例是全局唯一的,从而避免实例重复创建带来的资源浪费和可能的错误。原创 2024-08-05 17:45:02 · 201 阅读 · 0 评论