设计模式-结构型模式之外观
简化应用程序内部接口,提供一个单一接口以供外部(前端or客户侧)调用 1 class Valley: 2 3 def run(self): 4 self.pre_declare() 5 self.declare() 6 self.aft...阅读全文
简化应用程序内部接口,提供一个单一接口以供外部(前端or客户侧)调用 1 class Valley: 2 3 def run(self): 4 self.pre_declare() 5 self.declare() 6 self.aft...阅读全文
主要对象组成: 1、被构建目标对象 2、指挥官 3、实际构建者 4、指挥官与实际构建者交互接口 由于本人现阶段从事selenium方面工作,故经常和web页面打交道,在新框架构思过程中,正好期间学习到此设计模式,所以产生了一点想法,页面...阅读全文
一、简单工厂 创建对象的工作交由统一的函数接口来管理,传入不同的参数,返回不同的类对象 1 class AqSb: 2 3 def __repr__(self): 4 return "按期申报页面" 5 6 7 cl...阅读全文
1、元类实现 1 class Singleton(type): 2 def __init__(self, *args, **kwargs): 3 super().__init__(*args, **kwargs) 4 self._ins...阅读全文
前言 如果你第一次接触秒杀,可能还不太理解,库存100件就卖100件,在数据库里减到0就好了,这有什么麻烦的?理论上是这样,但是具体到业务场景中就没那么简单了。今天就聊聊减库存的设计,之后以高可用方案来结束秒杀设计的全部内容。 一、秒杀...阅读全文
前言 秒杀请求在高度集中在某一个时间点。这样一来,就会导致一 个特别高的流量峰值,它对资源的消耗是瞬时的 。能够抢到商品的人数是有限的,也就是说10人和1000人发 起请求的结果都是一样的。也就是说真正开始下单时,秒杀请求并不是越多越好...阅读全文
无论是我们在使用word还是记事本,系统都会为我们提供撤销的功能,这几乎是人人都会使用到的功能,而在我们实际开发中,会不会存在一个很复杂的对象,当更改了其中的某一个属性以后,也提供撤销的功能,可以快速恢复到更新前的状态。提供该功能的模式...阅读全文
我因为最近在学习游戏开发相关知识,然后意识到自己设计模式知识缺乏,所以就去寻找相关书籍,这时候《游戏设计模式》这本书就跳到了我的眼前。 github上有大佬将这本书翻译了,中文版阅读地址在这:架构,性能和游戏 · Introd...阅读全文
代理模式、适配器模式与装饰器模式 这三种设计模式在代码形式上十分相似。但是为了解决不同的问题而提出的: 代理模式 代理模式在不改变原始接口的条件下,为原始类控制访问、新增一些业务无关的功能。 适配器模式 将不兼容的接口转换为可兼容的接口...阅读全文
iOS开发相关的证书有很多种,iOS开发证书(iOS App Development)、iOS发布证书(iOS Distribution (App Store and Ad Hoc))、网站推送ID证书(Website Push ID ...阅读全文
顾名思义,如何建房子一样,建造者模式可以将复杂对象的建造过程抽象出来,使用相同的构建过程可以构造出不同表现的对象。 ...阅读全文
创建对象可能会导致大量的重复代码,可能会需要复合对象访问不到的信息,也可能提供不了足够级别的抽象,还可能并不是复合对象概念的一部分。工厂设计模式通过定义一个单独的创建对象的方法来解决这些问题。 ...阅读全文
本文通过解决老王经常搞错借书人的问题,来引出行为型模式中的命令模式。为了在案例之上理解的更加透彻,我们需要了解命令模式在源码中的应用。最后指出命令模式的应用场景和优缺点。 ...阅读全文
本博客用于技术学习,所有资源都来源于网络,部分是转发,部分是个人总结。欢迎共同学习和转载,转载请在醒目位置标明原文。如有侵权,请留言告知,及时撤除。 ...阅读全文
YSLaunchar-a1.0 模型 基本介绍 本文不考虑所有具体的实现方法,之后会有更完整第二版发出 该程序计划使用 julia 语言编写,目前版本(1.7)并不包含类(class),取而代之,我会使用 julia 提供的两种结构体完...阅读全文
单例模式 本章笔记的内容主要参考《设计模式之美》 核心问题 1.为什么要使用单例? 2.单例存在的问题? 3.单例与静态类的区别? 4.替代方案? 为什么要使用单例模式 /在很多场景中,我们需要一些可以共享的对象,来统一操作一些资源。若...阅读全文
单例模式是一种创建型设计模式, 让开发者能够保证一个类只有一个实例, 并提供一个访问该实例的全局节点,有助于协调系统整体的行为。 ...阅读全文
本文通过图书馆管理系统中,用户名校验、密码校验、需要增加问题,每次都要增加if判断语句,将其改用责任链模式进行链式调用,为了让代码更加的优雅,我们使用之前学过的建造者模式就代码进行改造。接着我们会介绍责任链模式在我们常用的框架中的运用,...阅读全文
设计原则为提高可维护性和可复用性而生,每一种设计模式都符合一个或多个设计原则,因此设计原则也是评价一个设计模式使用效果的重要指标之一。 ...阅读全文
你是否还在一个方法里面列出几个甚至几十个其他方法的调用呢?遇到这种情况如何优雅的设计代码,你可能需要看看责任链设计模式。 ...阅读全文