自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(73)
  • 收藏
  • 关注

原创 集合框架之ArrayDeque类详解

Java集合框架分析(Deque)———ArrayDeque类详解目录 一.数据结构 二.类标题 三.字段 四.构造函数 五.方法分析 类型 方法 作用 添加元素 public void addFirst(E e) 在数组前面添加元素 pu

2021-04-01 19:46:58 11272 3

原创 集合框架之LinkedList详解

ArrayList类中的方法与实现原理目录 一.数据结构 二.类标题 三.字段 四.构造函数 五.方法分析 共有方法 public boolean add(Object o) public boolean addAll(Collection c) public bo

2021-03-20 18:48:13 282

原创 集合框架之ArrayList类详解

ArrayList类中的方法与实现原理目录 一.类标题 二.字段 三.构造函数 public ArrayList(int initialCapacity) public ArrayList() public ArrayList(Collection c) 四.其他方法 public boolean add(Object o)

2021-03-15 10:06:06 246

原创 super关键字和final关键字的用法

一.super关键字的用法super关键字用于继承关系中,子类访问父类的成员变量、成员方法和构造方法1.1 使用super关键字调用父类的成员变量和成员方法dog类继承与Animal,在dog类中重写shout方法,通过super.shout()访问父类Animal类中的shout方法,通过super.name访问Animal类中的name属性package com.blog;//定义Animal类class Animal{ String name = "动物"; //定义动物

2021-03-08 16:37:19 545

原创 this关键字的用法

目录 一.概述 二.使用动机 三.使用方法 当局部变量和成员变量重名的时候,在方法中使用this表示成员变量以示区分 通过this关键字调用成员方法 this关键字把当前对象传递给其他方法 当需要返回当前对象的引用时,就常常在方法写return this 在构造器中调用构造器需要使用this 一.概述当一个对象创建成功之后(执行构造方法之前,对象已经创建成功),虚拟机(JVM)

2021-03-08 16:36:27 4010

原创 static关键字的用法

static关键字用法目录 一.概述 二.使用动机 三.使用方法 static关键字修饰类 static关键字修饰方法 static关键字修饰变量 static关键字修饰代码块 一. 概述> static是一个静态修饰符关键字,表示静态的意思,①方便在没有创建对象的情况下进行调用。可以修饰类、方法、变量以及代码块。【注释①】通常来说,当创建类时,就是在描述那个类的对象的外观

2021-03-08 16:34:14 1753

原创 Java内部类与匿名内部类的用法

目录 一.概述 二.使用动机 三.分类 四.使用方法 静态内部类 非静态内部类 4.2.1 成员内部类 4.2.2 局部内部类(方法内部类) 4.2.3 匿名内部类 外部顶层类的类名需和类文件名相同,只能使用public和defa

2021-03-08 16:33:40 307

原创 从王者荣耀看设计模式(五.状态模式)

从王者荣耀看设计模式(状态模式)一.简介英雄项羽在敌方英雄的攻击下存在3种不同的状态。1.在健康生命值下——普通状态,在每次被攻击时,当前生命值=剩余生命值-敌方英雄伤害值2.在生命值低于某一特定的值——被动状态,在每次被攻击时,当前生命值=剩余生命值-敌方英雄伤害值/23.英雄项羽生命值低于0——死亡状态二.状态模式状态模式:又称状态对象模式(Pattern of Objects for States),状态模式是对象的行为模式,状态模式允许一个对象在其内部状态改变的时候改变其行为。这个对

2021-01-24 17:42:35 184

原创 从王者荣耀看设计模式(二十三.访问者模式)

从王者荣耀看设计模式一.简介在游戏中,根据场上状况给英雄配备合适的装备是赢的比赛的重要环节。对于刚开始玩王者荣耀(低端玩家like me),在选择装备的时候只会关注装备能给英雄带来多少伤害的增幅(装备属性),而大神级别玩家会仔细研究装备的详细描述二.模式动机在有些集合对象中可能存在多种不同类型的元素,而且不同的调用者在使用这些元素时也有所区别,这些调用者称为访问者。此时,可以使用访问者模式来进行系统设计。访问者模式为多个访问者访问集合对象中的多种元素提供了一种解决方案。在本实例中,集合中存储有装备"

2021-01-24 17:40:54 214

原创 从王者荣耀看设计模式(二十二.备忘录模式)

从王者荣耀看设计模式一.简介点击王者荣耀商店法术的装备栏,存在有"贤者的庇护"这一装备。在对战中,当玩家处于死亡状态时,会触发此装备的效果,能够让英雄重新复活。┬┴┬┌─ ●─┬─  │─┼─┐ ●├─┤○┴┬┴├┬ ┌─┼─ │◎ │ │ ○└┬┘●─┼─││ │ │  ││─┴─┴ ──┼──●│○││ ┴─┼─  │○  ● / │ \二.模式动机在应用软件的开发中,很多时候我们都需要记录一个对象的内部状态。在具体实现时,为了允许用户取消不确定的操作或从错误中恢复过来,需要设置备份点

2021-01-24 17:40:22 280

原创 从王者荣耀看设计模式(二十一.中介者模式)

从王者荣耀看设计模式(中介者模式)一.简介在王者荣耀中,有一个简单的聊天室,在聊天室中。玩家点击综合可以与全服的玩家发送消息,点击好友可向指定好友玩家私发信息。|ू・ω・` )二.模式动机联合国是一个协调组织,各个国家就一些共同问题经由联合国进行协商,它取代了原本各个国家之间的直接交流,将各个成员国之间的强耦合关系转换为较为松散的耦合关系。在软件开发中,我们有时候也会需要使用类似联合国一样的中间对象来降低系统中类与类,对象与对象之间的耦合关系。在本实例中,玩家与玩家多对多的通信,导致用户之间存在

2021-01-24 17:39:52 397

原创 从王者荣耀看设计模式(二十.解释器模式)

从王者荣耀看设计模式(解释器模式)一.简介为了方便玩家沟通,王者荣耀允许玩家在游戏的同时录入语音,然后系统自动解释录入的语音,转换为字符串显示在玩家聊天的区域─━ _ ─━✧二.模式动机在某些情况下,为了更好得描述某些特定类型的问题,可以创建一个新的语言,这个语言有自己的表达式和结构,即语法规则,而且可以根据需要灵活的增加新的语法规则。解释器模式描述了如何构成一个简单的语言解释器。主要应用在使用面向对象语言开发的编译器中。在本实例中,模拟玩家的语音输入,将%解释为"",’#‘解释为逗号,’@'解释为

2021-01-23 14:15:58 191

原创 从王者荣耀看设计模式(十九.职责链模式)

从王者荣耀看设计模式(职责链模式)一.简介王者荣耀一共有7个段位,分别为青铜、白银、黄金、铂金、钻石、星耀、王者。排位模式中,每赢一局就能获得一颗星反之则失去一颗星。获得的星数与段位存在一种联系,当星数达到一定的程度,系统会匹配出相应的段位。二.模式动机在很多情况下,可以处理某个请求的对象不止一个。很多对象都可以处理申请,而且它们构成一条链,请求沿着这条链传递,这条链就称为职责链。职责链可以是一条直线、一个环或者一个树形状,最常见的职责链是直线型,即沿着一条单向的链来传递请求。链上的每个对象都是

2021-01-23 14:15:26 252

原创 从王者荣耀看设计模式(十八.享元模式)

从王者荣耀看设计模式(享元模式)一.简介在王者荣耀的经典对战模式中,小兵是不可或缺的组成部分。英雄通过击杀小兵可获取升级的所需的经验和购买装备所需的金钱。小兵可根据类型分为有远程小兵和近战小兵等。此外,游戏中红色阵营和蓝色阵营的小兵也会有些许不同。二.模式动机在很多情况下需要在系统中添加类和对象的个数。当对象的数量太多时,将导致运行代价过高,带来性能下降等问题。享元模式正是解决这一问题而诞生的。享元模式通过共享技术实现相同或相似对象的重用,在逻辑上每一个出现的对象都有一个对象与之对应,然而在物理上

2021-01-23 14:14:55 249

原创 从王者荣耀看设计模式(十七.桥接模式)

从王者荣耀看设计模式(桥接模式)一.简介王者荣耀是一款RGB游戏,玩家操控自己选择的英雄进行竞赛。在游戏正式开始前,玩家在挑选想要操作的英雄的同时,也会挑选适合该英雄的召唤师技能。召唤师技能是通用的,每个玩家都可以自由搭配英雄和召唤师技能₍₍◡( ╹◡╹ )◡₎₎二.模式动机例:现在有三个英雄,每个英雄可以任意搭配四种召唤师技能,现在有两种设计方案:设计方式一:第一种设计方案分析:每个英雄都配备四种召唤师技能,如果需要增加英雄,每增加一个英雄类相应增加四个召唤师技能类,如果需要增加技能,需要

2021-01-23 14:14:02 266

原创 从王者荣耀看设计模式(十六.原型模式)

从王者荣耀看设计模式(原型模式)一.简介王者荣耀包含有很多的玩法,其中有一种游戏模式只在周六和周日开放,那就是——克隆模式。与常规的游戏双方阵营只允许出现单一英雄不同,在克隆模式中,双方各选择一个英雄进行克隆,换句话说,一个阵营的五个人操作的五个相同的英雄二.模式动机在软件系统中,有些对象的创建过程比较复杂,而且有时候需要频繁创建,原型模式通过给出一个原型对象来指明所要创建的对象的类型,然后用复制这个原型对象的办法创建出更多同类型的对象,这就是原型模式的意图所在。在本实例中,克隆模式中有很多的相同

2021-01-23 14:13:31 620

原创 从王者荣耀看设计模式(十五.建造者模式)

从王者荣耀看设计模式(建造者模式)一.简介为了玩王者荣耀的游戏体验感,不少玩家都会选择花钱购买自己常用英雄的皮肤。一方面,购买的皮肤通常要比原画更加"炫酷"。另一方面,购买的英雄皮肤常常伴随有特殊的回城特效与攻击技能特效。二.模式动机不管在生活中还是软件系统中,都存在一个包含多个组成部件的复杂对象,如汽车,它包括车轮、方向盘、发动机等各种部件。组成复杂对象的这些部件之间或许还会一定的约束,若某些属性没有赋值可能无法构成完整产品使用。如,电子邮件包含地址、收件人姓名、联系方式。创建产品的过程就是组合

2021-01-23 14:13:00 378

原创 从王者荣耀看设计模式(十四.抽象工厂模式)

从王者荣耀看设计模式(抽象工厂模式)一.简介王者荣耀是一款流行的大众手机竞技游戏,目前已经来到了第18个赛季!支持在多种操作平台上运行是王者荣耀如此火爆的原因之一。玩家不仅能通过Andriod手机登陆游戏并且操作游戏,还能在IOS手机上登陆、操作游戏模式动机抽象工厂模式是工厂方法模式的泛化版,工厂方法模式是一种特殊的抽象工厂模式。在工厂方法模式中,每一个具体工厂只能生产一种具体产品,而在抽象工厂方法模式中,每一个具体工厂可以生产多个具体产品。在本实例中,苹果工厂生产的产品支持登陆和操作IOS游戏。

2021-01-23 14:12:29 377

原创 从王者荣耀看设计模式(十三.工厂方法模式)

从王者荣耀看设计模式(工厂方法模式)一.简介王者荣耀游戏设计师根据英雄技能、属性、天赋等因素,将英雄划分为射手、辅助、打野、法师、坦克、战士等职业。一局比赛存在多类英雄可供选择。玩家在挑选游戏英雄时,合理的英雄职业搭配是赢得游戏胜利的基本保证。二.工厂方法模式工厂方法模式(Factory Method Pattern):工厂方法模式又称为工厂模式,也叫虚拟构造器(Virtual Constructor)模式或者多态工厂(Polymorphic Factory)模式,它属于类创建型模式。在工厂方法模

2021-01-23 14:11:36 466

原创 从王者荣耀看设计模式(保护代理模式)

从王者荣耀看设计模式(保护模式)一.简介打开王者荣耀,点击右上角头像标志可进入我的信息主页。在我的个人主页中,我可以可设置玩家的游戏昵称,性别,常用英雄。除此之外,我还可以查看自己得到别人点赞的次数(不能给自己点赞);其他玩家亦可访问我的主页,可以给我点赞,可以查看我设置的所有信息(不能更改)。模式动机在本实例中,使用保护代理来限制用户的使用权限。我可以修改做自己的主页信息却不能给自己点赞。其他玩家可以给我点赞却不能修改我的主页信息。二.保护代理(控制用户的访问权限)保护代理,是提供某些级别的

2021-01-23 14:10:07 269

原创 从王者荣耀看设计模式(虚拟代理模式)

从王者荣耀看设计模式(虚拟代理模式)一.简介王者荣耀游戏设置了很多种游戏模式,比如:王者模拟战、无限乱斗、梦境大乱斗、火焰山大战等。当从王者荣耀的主界面进入各类模式的界面时,由于网络原因,会存在一定程度的延时(会有一个圈圈在主界面一直转啊转啊转(•́へ•́╬)),直到加载完图片,会跳转到各模式界面。模式动机在本实例中,当图片还没有从网上下载完成,使用虚拟代理进行代替,具体表示为:在图片没有下载到本地显示出来时,在GUI上显示:“正在加载中……请稍后”二.虚拟代理(作为创建开销大的对象的代表)虚

2021-01-23 14:09:33 617 1

原创 从王者荣耀看设计模式(远程代理模式)

从王者荣耀看设计模式(远程代理模式)一.简介每位王者荣耀玩家都有一个属于自己的游戏账号。为了提升游戏等级或者增加游戏体验感,会存在多个游戏玩家同时共享一个游戏账号的情况。当一位玩家使用账号正在游戏中时,另一玩家登陆同一账号会导致前一玩家强制退出登陆!(ಥ_ಥ)模式动机在本实例中,通过远程代理,我们可以实现远程控制。当我处于在线状态时,使用代理让同一账号的使用者下线二.远程代理(帮助我们控制访问远程对象)远程代理可以作为另一个JVM上对象的本地代表。调用代理的方法,会被代理利用网络转发到远程执行

2021-01-21 15:33:56 393

原创 从王者荣耀看设计模式(十二.代理模式)

从王者荣耀看设计模式(代理模式)一.代理模式代理模式(Proxy Pattern):给某一个对象提供一个代理,并由代理对象控制对原对象的引用。代理模式是一种对象结构型模式。模式动机在某些情况下,一个客户不想或者不能直接引用一个对象,此时可以通过一个称为"代理"的第三者来实现间接引用。代理对象可以在客户端和目标对象之间起到中介作用代理模式的使用场景根据代理模式的使用目的,常用的代理模式有以下几种类型1.远程(Remote)代理:为一个位于不同的地址空间的对象提供一个本地的代理对象,这个不同的

2021-01-21 15:33:11 590 1

原创 从王者荣耀看设计模式(十一.迭代器模式)

##从王者荣耀看设计模式(迭代器模式)一.简介王者荣耀是一款支持多人协同竞技的游戏,支持QQ/微信登陆。在王者荣耀中,可以通过游戏列表查看QQ/微信好友的状态,以便判断是否邀请好友加入游戏二.模式动机一个聚合对象,应该提供一种方法让别人可以访问它的元素,而又不需要暴露它的内部结构。此外,针对不同的需要,可能要以不同的方式遍历整个聚合对象,但是我们并不希望在聚合对象的抽象层接口充斥着不同遍历的操作。怎样遍历一个聚合对象,又不需要了解聚合对象的内部结构,还能够提供多种不同的遍历方式。这就是迭代器模式

2021-01-21 15:32:39 237

原创 从王者荣耀看设计模式(十.外观模式)

##从王者荣耀看设计模式(外观模式)一.简介王者荣耀是由多人协同开发而成,每个人负责游戏的一个或多个子功能,一个完整的功能是由很多已开发的子功能组合成的。我们要玩游戏时,只需要打开王者荣耀APP,无需知道具体有哪些功能被调用,系统会自动来完成游戏初始化过程(检查版本更新、校验安装包,加载登陆动图,加载背景音乐……)二.外观模式外观模式(Facade Pattern)外部与一个子系统的通信必须通过一个统一的外观对象进行,为子系统的一组接口提供一个一致的界面,外观模式定义了一个高层接口,这一接口使得这

2021-01-21 15:31:45 464

原创 从王者荣耀看设计模式(九.适配器模式)

##从王者荣耀看设计模式(适配器模式)一.简介在王者荣耀中,英雄元歌具有能够操纵傀儡的能力。元歌可以躲在草丛里,在本体状态使用秘术影来突进目标,同时傀儡会变成敌方英雄的样子,如果双方阵营有一样的英雄,能一定程度上对敌方的判断进行干扰。二.适配器模式适配器模式(Adapter Pattern):将一个类的接口变成客户端所期待的另一种接口,从而使原本因接口不匹配而无法在一起工作的两个类能够在一起工作模式动机在现实生活中,我们需要存在互不兼容的事物协同工作,在这种情况下可以通过一个名为适配器的设备使

2021-01-21 15:31:09 310

原创 从王者荣耀看设计模式(八.命令模式)

##从王者荣耀看设计模式(命令模式)一.简介王者荣耀是一款团队竞技游戏。良好的团队信息交流在一定程度上能帮助队伍取得胜利。为了保证游戏的流畅性与便捷性,王者荣耀提供了快捷交流机制,在王者小地图旁边有几个快捷聊天按钮(开始撤退,发起进攻,请求结合),玩家可通过点击快捷聊天按钮发出相应命令与队友进行交流二.命令模式命令模式(Command Pattern):命令模式是一种高内聚的模式,将"请求"封装成对象,以便使用不同的请求、队列或者日志来参数化其他对象。命令模式也支持可撤销的操作。模式动机在软件

2021-01-21 15:29:15 200

原创 从王者荣耀看设计模式(七.装饰者模式)

##从王者荣耀看设计模式(装饰者模式)一.简介王者荣耀中,角色的"伤害值"和"生命值"是很重要的概念。为了保证游戏的胜利,玩家会通过在游戏开始前配置合适的游戏铭文,在游戏中积累经济购买装备的方式来提升英雄角色的伤害值和生命值。二.装饰者模式装饰者模式(Decorator Pattern)是一种比较常见的模式,装饰者模式动态地将责任附加到对象上。若要扩展功能,装饰者提供了比继承更有弹性的替代方案模式动机在现实生活中,在不改变一个对象本身的基础上给对象增加额外的新行为的情况比比皆是。在本实例中,

2021-01-21 15:28:30 232

原创 从王者荣耀看设计模式(六.观察者模式)

##从王者荣耀看设计模式(观察者模式)####一.简介:王者荣耀是由十位玩家组成的RGB类电子竞技游戏。为了游戏良好的体验感,王者荣耀具有完备的系统提示机制.游戏开始时,系统会发出提示音:“敌军还有5秒到达战场,请做好准备”;游戏中,系统会向各玩家提示游戏进程,例如:“干将已经被甄姬击杀”,每个玩家都能接收到系统的提示,并根据系统的提示作出相应的操作####二.观察者模式观察者模式(Observer Pattern)也叫发布订阅模式(Public/subscribe),定义对象间一种一对多的依赖关

2021-01-21 15:27:42 702

原创 从王者荣耀看设计模式(四.组合模式)

从王者荣耀看设计模式(组合模式)一.简介在王者荣耀这款游戏中,我们可以在商店中购买英雄。英雄由法师、射手、打野等职业组合而成,其中各个职业由中国元素的英雄和外国元素的英雄组成,玩家可根据需要挑选并购买英雄二.组合模式组合模式(Composite Pattern),又叫部分整体模式,是用于把一组相似的对象当作一个单一的对象。组合模式依据树形结构来组合对象,用来表示部分以及整体层次。这种类型的设计模式属于结构型模式,它创建了对象组的树形结构。模式动机在面向对象系统中,我们常常遇到一类具有“容器”特

2021-01-21 15:25:51 197

原创 从王者荣耀看设计模式(三.模板方法模式)

从王者荣耀看设计模式(模板方法模式)一:简介玩家选择QQ或微信的登陆方式,点击登陆游戏,然后点击开始游戏,选择想要玩的英雄和召唤师技能,游戏开始(简易游戏流程模板)。二:模板方法模式定义一个操作中的算法的骨架,而将步骤延迟到子类中。模板方法使得子类可以不改变一个算法的结构即可重定义算法的某些特定步骤。在模板方法模式中,我们需要准备一个抽象类,将部分逻辑以具体方法以及构造函数的形式实现,然后声明一些抽象方法来让子类实现剩余的逻辑。不同的子类可以以不同的方式实现这些抽象方法,从而对剩余的逻辑有不同的实

2020-07-26 15:21:16 345

原创 从王者荣耀看设计模式(二.单例模式)

从王者荣耀看设计模式(单例模式)一:简介多个英雄可同时攻击敌方水晶,当水晶血条小于0,游戏结束二:单例模式一个类有且仅有一个实例,并且自行实例化向整个系统提供(水晶)。模式动机对于有些类来说,只有一个类的实例很重要。如何保证一个类只有一个实例并且这个实例易于被访问呢?定义一个全局变量可以确保对象随时都可以被访问,但不能防止我们实例化多个对象。一个更好的解决办法是让类自身负责保存它的唯一实例。这个类可以保证没有其他实例被创建,并且它提供一个访问该实例的办法。在本实例中,被各类英雄攻击的水晶是唯一

2020-07-26 15:20:29 286

原创 从王者荣耀看设计模式(一.策略模式)

设计模式分类创建型模式关注对象的创建过程,结构型模式关注对象与类的组织,而行为型模式关注对象之间的交互对GoF23种设计模式的说明一:简介游戏开始前,玩家需要选择英雄,再根据所选择的阵容自由选择召唤师技能,游戏开始,玩家可以控制英雄进行普通攻击和使用召唤师技能攻击二:策略模式策略模式将可变的部分从程序中抽象出来分离成算法接口,在该接口下分别封装一系列算法实现模式动机完成一项任务,往往可以有多种不同的方式,每一种方式称为一个策略,我们可以根据环境或者条件的不同选择不同的策略来完成该项任务

2020-07-26 15:19:31 615

空空如也

空空如也

TA创建的收藏夹 TA关注的收藏夹

TA关注的人

提示
确定要删除当前文章?
取消 删除