![](https://img-blog.csdnimg.cn/20210610164155920.jpg?x-oss-process=image/resize,m_fixed,h_224,w_224)
python:水果与设计模式
文章平均质量分 77
主要以水果为例,结合设计模式的思想,用简单易懂的实例理解设计模式的本质思想!
Super__Tiger
专注于人工智能及其应用等知识领域的养成系博主!(づ ̄3 ̄)づ╭~
展开
-
python:水果与设计模式-适配器模式
适配器模式(Adapter Pattern):属于结构型模式,它 结合了两个独立接口的功能,作为两个不兼容的接口之间的桥梁 。这种模式涉及到一个单一的类,该类负责加入独立的或不兼容的接口功能。例如,读卡器是作为内存卡和笔记本之间的适配器。您将内存卡插入读卡器,再将读卡器插入笔记本,这样就可以通过笔记本来读取内存卡。意图: 将一个类的接口转换成客户希望的另外一个接口。适配器模式使得原本由于接口不兼容而不能一起工作的那些类可以一起工作。主要解决: 主要解决在软件系统中,常常要将一些"现存的对象"放到新的环原创 2021-07-14 00:21:17 · 1510 阅读 · 32 评论 -
python:水果与设计模式-原型模式
原型模式(Prototype Pattern):属于创建型模式,它提供了一种创建对象的最佳方式。这种模式实现了一个原型接口,该接口用于创建当前对象的克隆。当直接创建对象的代价比较大时,则采用这种模式。例如,一个对象需要在一个高代价的数据库操作之后被创建。我们可以缓存该对象,在下一个请求时返回它的克隆,在需要的时候更新数据库,以此来减少数据库调用。意图: 用原型实例指定创建对象的种类,并且通过拷贝这些原型创建新的对象。主要解决: 在运行期建立和删除原型。何时使用: 1、当一个系统应该独立于它的产品创原创 2021-06-30 11:15:48 · 1722 阅读 · 38 评论 -
python:水果与设计模式-建造者模式
建造者模式(Builder Pattern) :属于创建型模式,它提供了一种创建对象的最佳方式。这种模式 使用多个简单的对象一步一步构建成一个复杂的对象,一个 Builder 类会一步一步构造最终的对象,且该 Builder类是独立于其他对象的。意图: 将一个复杂的构建与其表示相分离,使得同样的构建过程可以创建不同的表示。主要解决: 主要解决在软件系统中,有时候面临着"一个复杂对象"的创建工作,其通常由各个部分的子对象用一定的算法构成;由于需求的变化,这个复杂对象的各个部分经常面临着剧烈的变化,但是将原创 2021-06-23 16:13:13 · 1430 阅读 · 32 评论 -
python:水果与设计模式-单例模式
单例模式(Singleton Pattern):属于创建型模式,它提供了一种创建对象的最佳方式。这种模式涉及到一个单一的类,该类负责创建自己的对象,同时确保只有单个对象被创建。这个类提供了一种访问其唯一的对象的方式,可以直接访问,不需要实例化该类的对象。(注意:1、单例类只能有一个实例。2、单例类必须自己创建自己的唯一实例。3、单例类必须给所有其他对象提供这一实例。)意图: 保证一个类仅有一个实例,并提供一个访问它的全局访问点。主要解决: 一个全局使用的类频繁地创建与销毁。何时使用: 当您想控制实例原创 2021-06-17 21:07:06 · 1861 阅读 · 34 评论 -
python:水果与设计模式-抽象工厂模式
抽象工厂模式(Abstract Factory Pattern):属于创建型模式,它提供了一种创建对象的最佳方式。在抽象工厂模式中,接口是负责创建一个相关对象的工厂,不需要显式指定它们的类,每个生成的工厂都能按照工厂模式提供对象。意图: 提供一个创建一系列相关或相互依赖对象的接口,而无需指定它们具体的类。主要解决: 主要解决接口选择的问题。何时使用: 系统的产品有多于一个的产品族,而系统只消费其中某一族的产品。如何解决: 在一个产品族里面,定义多个产品。关键代码: 在一个工厂里聚合多个同类产品原创 2021-06-14 16:08:26 · 11585 阅读 · 80 评论 -
Python:水果与设计模式-工厂模式
工厂模式(Factory Pattern):属于创建型模式,它提供了一种创建对象的最佳方式。在工厂模式中,我们 在创建对象时不会对客户端暴露创建逻辑,并且是通过使用一个共同的接口来指向新创建的对象 。意图: 定义一个创建对象的接口,让其子类自己决定实例化哪一个工厂类,工厂模式使其创建过程延迟到子类进行。主要解决: 主要解决接口选择的问题。何时使用: 我们明确地计划不同条件下创建不同实例时。如何解决: 让其子类实现工厂接口。关键代码: 创建过程在其子类执行。应用实例:我想买一些水果(橘子、哈密瓜和原创 2021-06-10 15:43:58 · 2037 阅读 · 52 评论