初识设计模式 - 适配器模式
适配器设计模式(Adapter Design Pattern)可以将不兼容的接口转换为可兼容的接口,让原本由于接口不兼容而不能一起工作的类可以一起工作。 ...阅读全文
适配器设计模式(Adapter Design Pattern)可以将不兼容的接口转换为可兼容的接口,让原本由于接口不兼容而不能一起工作的类可以一起工作。 ...阅读全文
定义 迭代器模式(Iterator pattern):用于顺序访问集合对象里的每一个元素,不用暴露集合是怎样存储元素的。 举例 某个班级有若干个学生,现在需要统计这些学生的平均分数。假设所有学生的分数是用数组存储的: int totalScore(int *array, int n) { int s ...阅读全文
装饰器模式(Decorator Design Pattern)是一种结构型设计模式,通过将对象放入包含行为的特殊封装对象中来为原对象绑定新的行为。简单地说,就是允许向一个现有的功能添加新的功能,同时又不改变其结构。 ...阅读全文
桥接模式是一种在日常开发中不是特别常用的设计模式,主要是因为上手难度较大,但是对于理解面向对象设计有非常大的帮助。 ...阅读全文
代理设计模式(Proxy Design Pattern)指的是,在不改变原始类(或叫被代理类)代码的情况下,通过引入代理类来给原始类附加功能,即扩展目标对象的功能。 ...阅读全文
实现AOP(面向切面编程)的一种便捷方式,额外扩展统一管理 装饰器的实现我在语言进阶篇中有提到,这里不再赘述 1 from decorator import decorator 2 3 4 @decorator 5 def pre_execute(func, param=None, *args, * ...阅读全文
简化应用程序内部接口,提供一个单一接口以供外部(前端or客户侧)调用 1 class Valley: 2 3 def run(self): 4 self.pre_declare() 5 self.declare() 6 self.after_declare() 7 8 def pre_declare ...阅读全文
主要对象组成: 1、被构建目标对象 2、指挥官 3、实际构建者 4、指挥官与实际构建者交互接口 由于本人现阶段从事selenium方面工作,故经常和web页面打交道,在新框架构思过程中,正好期间学习到此设计模式,所以产生了一点想法,页面对象通常包含路径、元素、接口......,所以可以把这些组成都分 ...阅读全文
一、简单工厂 创建对象的工作交由统一的函数接口来管理,传入不同的参数,返回不同的类对象 1 class AqSb: 2 3 def __repr__(self): 4 return "按期申报页面" 5 6 7 class QtSb: 8 9 def __repr__(self): 10 retur ...阅读全文
1、元类实现 1 class Singleton(type): 2 def __init__(self, *args, **kwargs): 3 super().__init__(*args, **kwargs) 4 self._instance = None 5 6 # 重写__call__ 7 ...阅读全文
前言 如果你第一次接触秒杀,可能还不太理解,库存100件就卖100件,在数据库里减到0就好了,这有什么麻烦的?理论上是这样,但是具体到业务场景中就没那么简单了。今天就聊聊减库存的设计,之后以高可用方案来结束秒杀设计的全部内容。 一、秒杀中的减库存 减库存操作一般有如下几个方式: 1.下单减库存:下单 ...阅读全文
前言 秒杀请求在高度集中在某一个时间点。这样一来,就会导致一 个特别高的流量峰值,它对资源的消耗是瞬时的 。能够抢到商品的人数是有限的,也就是说10人和1000人发 起请求的结果都是一样的。也就是说真正开始下单时,秒杀请求并不是越多越好。 一、秒杀中的削峰 由于服务器的处理资源是恒定的,用或者不用它 ...阅读全文
无论是我们在使用word还是记事本,系统都会为我们提供撤销的功能,这几乎是人人都会使用到的功能,而在我们实际开发中,会不会存在一个很复杂的对象,当更改了其中的某一个属性以后,也提供撤销的功能,可以快速恢复到更新前的状态。提供该功能的模式也正是今天的主题——备忘录模式。 ...阅读全文
我因为最近在学习游戏开发相关知识,然后意识到自己设计模式知识缺乏,所以就去寻找相关书籍,这时候《游戏设计模式》这本书就跳到了我的眼前。 github上有大佬将这本书翻译了,中文版阅读地址在这:架构,性能和游戏 · Introduction · 游戏设计模式 (tkchu.me) 序章:架构,性能和游 ...阅读全文
代理模式、适配器模式与装饰器模式 这三种设计模式在代码形式上十分相似。但是为了解决不同的问题而提出的: 代理模式 代理模式在不改变原始接口的条件下,为原始类控制访问、新增一些业务无关的功能。 适配器模式 将不兼容的接口转换为可兼容的接口。(一种以修正为目的的设计模式)。 装饰器模式 装饰器模式是对原 ...阅读全文
iOS开发相关的证书有很多种,iOS开发证书(iOS App Development)、iOS发布证书(iOS Distribution (App Store and Ad Hoc))、网站推送ID证书(Website Push ID Certificate)、Apple Pay付款处理证书(App ...阅读全文
顾名思义,如何建房子一样,建造者模式可以将复杂对象的建造过程抽象出来,使用相同的构建过程可以构造出不同表现的对象。 ...阅读全文
创建对象可能会导致大量的重复代码,可能会需要复合对象访问不到的信息,也可能提供不了足够级别的抽象,还可能并不是复合对象概念的一部分。工厂设计模式通过定义一个单独的创建对象的方法来解决这些问题。 ...阅读全文
本文通过解决老王经常搞错借书人的问题,来引出行为型模式中的命令模式。为了在案例之上理解的更加透彻,我们需要了解命令模式在源码中的应用。最后指出命令模式的应用场景和优缺点。 ...阅读全文
本博客用于技术学习,所有资源都来源于网络,部分是转发,部分是个人总结。欢迎共同学习和转载,转载请在醒目位置标明原文。如有侵权,请留言告知,及时撤除。 ...阅读全文