gof23专题

GOF23设计模式【更新ing】

开始暑期学习新篇章标题 文章目录 一、设计模式概述1.1 设计模式定义1.2 设计模式7大原则1.3 设计模式的重要性 二、创建型设计模式单例模式 三、结构型设计模式四、行为型设计模式 一、设计模式概述 1.1 设计模式定义 用来解决软件设计中常见的问题。它们像是经验丰富的老手总结出来的“诀窍”,可以让你更轻松地写出好的、易维护的代码。每个模式都像一个蓝图,您可以自定

GOF23种设计模式系列之行为型设计模式(C#实现)

GOF23种设计模式系列之行为型设计模式 目录 GOF23种设计模式系列之行为型设计模式什么是行为型设计模式解释器模式 (InterpreterPattern)调用方式如果正确使用解释器模式呢? Template Method(模板方法)调用方式关于模板方法 Chain of Responsibility(责任链)调用方式关于责任链模式 Command(命令)调用方式关于命令模式 Iter

GOF23种设计模式系列之创建型设计模式

GOF23种设计模式系列之创建型设计模式 目录 GOF23种设计模式系列之创建型设计模式什么是创建型设计模式单例模式/原型模式 (Singleton)单例方式一:懒汉试双if锁单例方式二:饿汉式静态构造函数单例模式三:饿汉式静态字段调用方式如果正确使用单例模式呢? 简单工厂 (Simple Factory)基于依赖倒置原则的简单工厂基于配置文件的简单工厂基于反射+配置文件的简单工厂关于简单

GoF23-合成复用原则

合成复用原则(Composite Reuse Principle) 合成复用原则(Composite Reuse Principle)原则是尽量使用合成/聚合的方式,而不是使用继承 场景描述 假设现在有A类,A类中有method1()、method2(),B类想要去使用A类中的method1(),按照我们平时的想法就是让B类去继承A类,进而去调用A类中的method1()但是使用继承的方

GoF23-迪米特法则

迪米特法则 基本介绍1)一个对象应该对其他对象保持最少的了解2)类与类关系越密切,耦合度越大3)迪米特法则(Demeter Principle)又叫最少知道原则,即一个类对自己依赖的类知道的越少越好。也就是说,对于被依赖的类不管多么复杂,都尽量将逻辑封装在类的内部。对外除了提供的Public方法,不对外泄露任何信息4)迪米特法则还有个更简单的定义:只与直接的朋友通信5)直接的朋友:每个对象都会

GoF23-里氏替换原则

里氏替换原则 存在问题 面向对象思想中的继承性的一些思考:1) 继承包含这样一层含义:父类中凡是已经实现好的方法,实际上是在设定规范和契约,虽然它不强制要求所有的子类必须遵循这些契约,但是如果子类对这些已经实现的方法任意修改,就会对整个继承体系造成破坏。2) 继承在给程序设计带来便利的同时,也带来了弊端。比如使用继承会给程序带来侵入性,程序的可移植性降低,增加对象间的耦合性,如果一个类被其他

GoF23-依赖倒置原则

依赖倒置原则 依赖倒置原则概念 依赖倒置原则(Dependence Inversion Principle)是指:1.高层模块不应该依赖低层模块,二者都应该依赖其抽象2.抽象不应该依赖细节,细节应该依赖抽象3.依赖倒置的中心思想是面向接口编程4.依赖倒置原则是基于这样的设计理念:相对于细节的多变性,抽象的东西要稳定得多。以抽象为基础搭建的架构比以细节为基础的架构要稳定得多。在Java中,抽象指

GoF23-建造者模式

建造者模式 建造者模式概述 建造者模式(Builder Pattern)又叫生成器模式,是一种对象构建模式。它可以将复杂对象的建造过程抽象出来(抽象类别),使这个抽象过程的不同实现方法可以构造出不同表现(属性)的对象建造者模式是一步一步创建一个复杂的对象,它允许用户只通过指定复杂对象的类型和内容就可以构建它们,用户不需要知道内部的具体构建细节 建造者模式原理 建造者模式的四个角色:1)P

GoF23-单一职责原则

单一职责原则 单一职责原则概述 对类来说的,即一个类应该只负责一项职责。如类Cola负责两个不同职责:职责1:生产可乐,职责2:销售可乐当职责1:生产可乐需求变更而改变类Cola时,可能造成职责2:销售可乐执行错误,所以需要将类Cola的粒度分解为:类ProductionCola,类SaleCola单一职责原则:各司其职 单一职责原则实际应用 应用背景 描绘出一些人正在使用的交通工具的

UML GOF23

UML GOF23 OOP 原则

GoF23设计模式总述

GOF23种设计模式 开篇杂谈GoFGoF23种设计模式 开篇杂谈 本篇为笔者学习设计模式时的一些笔记总结的开篇引导,开篇的目的一是方便自己在之后可以回头看看加深一下记忆(笔者觉得自己的记忆功能可能有点儿问题T_T),二呢也是有可能的话希望能帮助到一些人吧(当然笔者更多的是因为第一点,因为篇幅深度很浅,其本质只是一个初学者的笔记T_T)。 说起设计模式,在笔者刚接触编程这个领域的

【零】Java设计模式GOF23之总结

设计模式主要有3个大分类 创建型模式:用来建造对象 一、单例模式: 保证一个类只有一个实例,并且提供一个访问该实例的全局访问点。 常见应用场景: 1.全局计数器采用单例模式,不然不好同步。 2.应用程序的日志应用,共享日志文件一直处于打开状态,所以只能有一个实例去操作,否则内容不好追加。 3.数据库连接池的设计也用单例,否则浪费资源。 4.spring中的bean默认都是单例。

Unity实现GoF23种设计模式

文章目录 Unity实现GoF23种设计模式概要一、创建型模式(Creational Patterns):二、结构型模式(Structural Patterns):三、行为型模式(Behavioral Patterns): Unity实现GoF23种设计模式概要 GoF所提出的23种设计模式主要基于以下面向对象设计原则: 对接口编程而不是对实现编程优先使用对象组合而不是继承

GOF23种设计模式面试之三种工厂模式

简单工厂 简单工厂模式属于创建型模式,但是并不属于GOF23种设计模式,通过简单工厂模式,我们可以了解一下工厂模式相关的概念。 将实例化的操作放在一个类中,这个类就成为简单工厂类,简单工厂模式,定义了某一个工厂对象能够创建出哪一种产品类的实例。 借此将客户类和具体子类的实现进行解耦,客户端只注重于传入工厂类的参数,对于创建对象的逻辑不关心 例: 现在有一个抽象类Sword,可以打造各种