建造者模式(六)

博主头像 基本介绍 建造者模式又叫生成器模式,是一种对象构建模式。它可以将复杂对象的建造过程抽象出来(抽象类别),使这个抽象过程的不同实现方法可以构造出不同表现(属性)的对象 建造者模式是一步一步创建一个复杂的对象,它允许用户只通过指定复杂对象的类型和内容就可以构建他们,用户不需要知道内部的具体构建细节 建造 ...

设计模式-责任链模式引发的思考

博主头像 背景: 在业务频繁迭代的时候,有时候一个菜单页面对应的后台代码会越来越凌乱,一个方法本来就做A、B事情,后面迭代,变成会做A、B、C、D、E事情,且A、B又细分出a1、a2、a3、a4、b1、b2、b3。一个菜单页开始设计代码时,通常写法都较为面向对象,后面经多个人,可能是不同的人迭代后就越来越面向 ...

PHP设计模式—命令模式

博主头像 定义: 命令模式(Command):将一个请求封装为一个对象,从而使你可用不同的请求对客户进行参数化;对请求排队或记录请求日志,以及支持可撤销的操作。 结构: Command:命令抽象类,用来声明执行操作的接口。 ConcreteCommand:具体命令类,将一个接收者对象绑定于一个动作,调用接收者 ...

PHP设计模式—桥接模式

博主头像 定义: 桥接模式(Bridge):将抽象部分与它的实现部分分离,使它们都可以独立地变化。 结构: Abstraction:抽象类。 RefindAbstraction:被提炼的抽象类。 Implementor:实现类。 ConcreteImplementor:具体实现类 。 Client:客户端代码 ...

Laxcus远程终端

博主头像 Laxcus集群操作系统的远程终端越来越象Linux的VIM了,除了界面风格之外,在用户使用的命令上也在向VIM靠近,原因嘛也不难理解,毕竟Laxcus是一个分布式的操作系统,处理的都是云端业务和超大型的数据计算,现有主要的用户人群,在使用Laxcus集群操作系统的时候,也在使用Linux。所以尽可 ...

C#设计模式总纲

博主头像 使用设计模式的根本原因:代码总是在不断地变化,使用设计模式可以刚好的适应变化,提高代码的复用性,使代码更容易维护和扩展。 SOLID单一职责原则:类应该保持单一的职责,若包含多个职责可能会形成耦合,职责改变时就可能影响到其他职责,影响类本身的稳定性和代码复用性。 开放封闭原则:软件实体包括类类,函数 ...

设计模式-责任链模式

博主头像 作为一个上班族,我们可能会经常听到“管理流程混乱”,“职责边界不清晰”等这样或那样的抱怨,这是当组织或系统发展壮大后,一件事由一个人或者一个部门无法独立完成时,不得不面对的问题。就拿平时请假来说,试想如果是一个只有几个人的小公司,很可能连请假条都不用写,直接跟老板说一下就OK了,但是如果公司有一定规 ...

控制反转(IOC容器)-Autofac入门

博主头像 注意:本文为原创文章,任何形式的转载、引用(包括但不限于以上形式)等,须先征得作者同意,否则一切后果自负。 简介 Autofac 是一个令人着迷的.NET IoC 容器。 它管理类之间的依赖关系。当应用程序的规模和复杂性随着时间不断增长时,也能易于更改。这是通过将常规 .NET 类视为组件来实现的。 ...

优雅地处理错误真是一门学问啊!

博主头像 文章目录: errors 这个大家肯定使用过,标准库的 errors 错误实现比较简单,无法进行堆栈追溯,对于产生错误时的上层调用者来讲不是很友好,无法获得错误的调用链详细信息。 // 不带堆栈 err := errors.New("error msg") fmt.Printf("%+v\n", e ...

原型模式(四)

博主头像 基本介绍 原型模式(Prototype模式)是指:用原型实例指定创建对象的种类,并且通过拷贝这些原型,创建新的对象。 原型模式是一种创建型设计模式,允许一个对象再创建另一个可定制的对象,无需知道创建的细节 工作原理是:通过将一个原型对象传给那个发动创建的对象,这个发动创建的对象通过请求原型对象拷贝她 ...

责任链模式的实践

博主头像 责任链模式 基本概念 责任链(Chain of Responsibility)模式的定义:为了避免请求发送者与多个请求处理者耦合在一起,于是将所有请求的处理者通过前一对象记住其下一个对象的引用而连成一条链;当有请求发生时,可将请求沿着这条链传递,直到有对象处理它为止。 关于责任链的详细介绍可以点击这 ...

设计模式-观察者模式下

博主头像 上一篇说到了观察者模式较为传统的用法,这篇准备分享点流行的,不过在开始新内容之前,我们不妨先思考一下两种场景,一个是报社订阅报纸,另一个是在黑板上发公告,都是典型观察者模式应用场景,二者有何不同? 报社订阅报纸,订阅者需要到报社登记交钱,然后报社才会每次有新报纸时通知到订阅者。 而在黑板上发公告,发 ...

浅谈软件开发模型之瀑布开发和敏捷开发

博主头像 1、瀑布模型 1.1 瀑布模型的特点 1970年温斯顿·罗伊斯(Winston Royce)提出了著名的“瀑布模型”,直到80年代早期,它一直是唯一被广泛采用的软件开发模型。 1.2 瀑布模型核心思想 瀑布模型核心思想是按工序将问题化简,将功能的实现与设计分开,便于分工协作,即采用结构化的分析与设计 ...

PHP设计模式—建造者模式

博主头像 定义: 建造者模式(Builder):将一个复杂对象的构建与它的表示分离,使得同样的构建过程可以创建不同的表示。 结构: Builder:抽象建造者类,为创建一个 Product 对象的各个部件指定的抽象接口。 Director:指挥者类,构建一个使用 Builder 接口的对象 ConcreteB ...

Java单例模式实现,一次性学完整,面试加分项

博主头像 单例模式是设计模式中使用最为普遍的一种模式。属于对象创建模式,它可以确保系统中一个类只产生一个实例。这样的行为能带来两大好处: 对于频繁使用的对象,可以省略创建对象所花费的时间,这对于那些重量级对象而言,是非常可观的一笔系统开销。 由于new操作的次数减少,因而对系统内存的使用频率也会降低,这将减轻 ...

设计模式-策略模式初体验和总结

设计模式按照功能型分类 创建型模式: 工厂方法模式、抽象工厂模式、单例模式、建造者模式、原型模式 结构型模式: 适配器模式、装饰器模式、代理模式、外观模式、桥接模式、组合模式、享元模式 行为型模式: 策略模式、模板方法模式、观察者模式、迭代子模式、责任链模式、命令模式、备忘录模式、状态模式、访问者模 ...

别再面向 for 循环编程了,JDK 自带的观察者模式就很香!

博主头像 大家好,你还在面向 for 循环编程吗? 还有谁不会用观察者模式吗? 本篇栈长带来《观察者模式》理论及实战~ 什么是观察者模式? 观察者模式(Observer Pattern)定义了对象间的一种一对多的依赖关系,这样只要一个对象的状态发生改变,其依赖的所有相关对象都会得到通知并自动更新。 在观察者模 ...

PHP设计模式—模板方法模式

博主头像 定义: 模板方法模式(Template Method):定义一个操作中的算法的骨架,而将一些步骤延迟到子类中。模板方法使得子类可以不改变一个算法的结构即可重定义该算法的某些特定步骤。 结构: AbstractClass:抽象类,定义并实现了一个模板方法。这个模板方法一般是一个具体方法,它给出了一个顶 ...

<1234···8>