建造者模式(Builder Pattern)
模式动机 建造者模式(Builder Pattern)是最复杂的创建型模式,它用于创建一个包含多个组成部分的复杂对象,可以返回一个完整的产品对象给用户。它通过将客户端与包含多个组成部分的复杂对象的创建过程分离,使得客户端无需知道复杂对象的内部组成部分与装配方式,只需要知道建造者的类型即可。它关注如何 ...阅读全文
模式动机 建造者模式(Builder Pattern)是最复杂的创建型模式,它用于创建一个包含多个组成部分的复杂对象,可以返回一个完整的产品对象给用户。它通过将客户端与包含多个组成部分的复杂对象的创建过程分离,使得客户端无需知道复杂对象的内部组成部分与装配方式,只需要知道建造者的类型即可。它关注如何 ...阅读全文
装饰器模式是一种结构型设计模式,可以在不修改原始对象的基础上添加新的功能和行为。该模式通过将对象包装在具有相同接口的装饰器类中来实现此目的。 以下是5W1H分析: What(什么)? 装饰器模式是一种结构型设计模式,它允许在运行时动态地向对象添加新的功能和行为,而无需修改原始对象的代码。该模式通过将 ...阅读全文
1. 什么是C#组合模式? 组合模式是一种结构型设计模式,它允许将对象组合成树形结构以表示“整体/部分”层次结构。使用此模式,客户端可以按相同的方式处理单个对象和对象集合,而不必关注它们是单个对象还是组合对象。组合对象本身也可以作为容器,包含其他组合对象,形成更复杂的树形结构。 在C#中,组合模式是 ...阅读全文
单例模式 模式动机 单例模式(Singleton Pattern)是结构最简单的设计模式,它的核心结构中只包含一个被称为单例类的特殊类。通过单例模式可以确保系统中一个类只有一个实例,且该实例易于被外界访问,从而方便对实例个数的控制并节约系统资源。 [ ] 如何确保一个类只有一个实例并且这个实例易于被 ...阅读全文
软件设计题分析 | 试题 | 考察内容 | | | | | 数据流图/DFD | 补充外部实体、数据存储、加工、数据流等 | | 数据库设计/ER | E-R图 关系模式 主键/外键 规范化理论 增加实体 | | UML建模 | 类图 用例图 活动图等 | | C语言算法 | C语法+数据结构 | ...阅读全文
软件设计题分析 | 试题 | 考察内容 | | | | | 数据流图/DFD | 补充外部实体、数据存储、加工、数据流等 | | 数据库设计/ER | E-R图 关系模式 主键/外键 规范化理论 增加实体 | | UML建模 | 类图 用例图 活动图等 | | C语言算法 | C语法+数据结构 | ...阅读全文
本文主要讲解了京东百亿级商品车型适配数据存储结构设计以及怎样实现适配接口的高性能查询。通过京东百亿级数据缓存架构设计实践案例,简单剖析了jimdb的位图(bitmap)函数和lua脚本应用在高性能场景。希望通过本文,读者可以对缓存的内部结构知识有一定了解,并且能够以最小的内存使用代价将位图(bitm... ...阅读全文
解决的问题 避免新开发的代码影响提测的代码 避免生产环境出现问题后,修复后,由于代码混乱,无法合并到生产环境 解决多个需求并行开发,并行测试,合并上线的问题 我的设计思路 流程图工具我使用的是:diagrams.net 具体执行步骤 开发人员按需求粒度从dev建立分支 哪个需求或者哪些需求提测,就把 ...阅读全文
本文从设计模式与编程语言的关系,设计模式与架构模式的区别,设计原则和设计模式的关系等几个维度进行了分析和解答。关于设计模式应该如何学习和应用的问题,给出了学习意见和实践心得。 ...阅读全文
前段时间,随着阿里集团CEO张勇的公开信发布,阿里集团也做出了历史上最大的一次组织调整。 随着新的1+6+N的组织阵型的调整和落地,阿里曾经的中台战略,变得有点非常的尴尬了,似乎成为了一个巨大的争议。 ...阅读全文
回顾工厂方法设计模式的不足:具体产品增加时,系统中类的个数将成对增加,在一定程度上增加了系统的复杂度 模式动机 产品等级结构:产品等级结构即产品的继承结构,即抽象产品与具体产品 产品族:在抽象工厂模式中,产品族是指由同一个工厂生产的,位于不同产品等级结构中的一组产品 模式定义 提供一个创建一系列相关 ...阅读全文
基于ssd磁盘,此我设计了比redis更好的缓存方案。此方案:没有缓存击穿问题。没有缓存雪崩问题。没有缓存污染问题。没有热key问题。 不需要snap和aof。支持任何sql库,sql库不需要带有任何分布式功能。 ...阅读全文
简介 访问者模式(Visitor Pattern)是一种行为型模式。它封装一个访问者类,把各元素类的操作集合起来,目的是将数据结构与数据操作分离。在不改变原有元素类数据结构的前提下,改变了元素类的执行算法。 当某些较为稳定的东西(数据结构或算法),不想直接被改变但又想扩展功能,这时候适合用访问者模式 ...阅读全文
这几周与公司的软件开发专家(职称)讨论产品的软件新架构与方案,主要涉及两点 是否复用现有的核心机制 基于领域建模设计 关于第一点,双方达成一致。 关于第二点,领域可以理解为业务,业务专家(产品经理,需求工程师,临床工程师等)与研发人员一起,通过头脑风暴、事件风暴、会议、协作等方式,使得研发人员对产品 ...阅读全文
LOD:迪米特法则(Law of Demeter) CRP:合成复用原则(Composite Reuse Principle) DRY:不要重复你自己原则 (Don’t Repeat Yourself Principle) KISS:KISS原则 (Keep It Simple and Stupid ...阅读全文
一、前言 第二次在博客园上发布面向对象程序设计题目集的总结博客。经过几周的学习,面向对象的理念更加深入。虽然已经学了些面向对象程序设计,学好这部分内容还是有较大难度。 关于知识点 本次的题目集所体现的知识点已经不仅限于Java的语法知识,还需要考虑设计问题,不能看到题目就开始进行代码编写,需要考虑类 ...阅读全文
工厂方法模式 简单工厂的不足 上节的简单工厂,需要拓展时比如修改工厂类,违背了设计模式的开闭原则 简单工厂类直接生成各个子类产品,而工厂方法则有一个抽象工厂类,声明了创建产品的工厂方法,而各个不同的子类产品交由各个不同的具体工厂去完成创建,拓展时,只需要新建一个具体工厂即可,具有更好的灵活性和拓展性 ...阅读全文
简介 模板方法模式(Template Method Pattern)也叫模板模式,是一种行为型模式。它定义了一个抽象公开类,包含基本的算法骨架,而将一些步骤延迟到子类中,模板方法使得子类可以不改变算法的结构,只是重定义该算法的某些特定步骤。不同的子类以不同的方式实现这些抽象方法,从而对剩余的逻辑有不 ...阅读全文
摘要:本文主要是对《凤凰架构》的解读,讲述规划系统流量的几种方式。 本文分享自华为云社区《大流量时代,如何规划系统流量提升可靠性》,作者:breakDawn 。 透明多级分流系统 对系统流量进行规划, 要注意以下2个原则 尽可能减少单点部件, 或者减少到达单点部件的流量或者作用 奥卡姆剃刀原则,确定 ...阅读全文
复杂系统的架构设计不是一蹴而就的,合适的才是正确的。希望本文能够对您在进行复杂系统设计时有一定的参考意义。 ...阅读全文