自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(25)
  • 资源 (9)
  • 收藏
  • 关注

原创 【设计模式】迭代器模式

迭代器模式是一种行为型设计模式,它可以让你在不暴露对象内部实现的情况下,访问一个对象的元素序列。迭代器模式通过将遍历逻辑从对象集合中抽离出来,从而使得遍历逻辑与具体集合的实现细节解耦。该模式主要解决的问题是,如何在不暴露对象内部实现的情况下,访问一个对象的元素序列。迭代器模式通常包含两个角色:迭代器和集合。迭代器是用于遍历集合元素的对象,它可以遍历集合中的所有元素,并提供一些方法来访问和操作元素。集合是包含元素的对象,它通常是一个复杂的对象结构,包含多个元素。

2023-05-25 01:20:09 62

原创 【设计模式】访问者模式

访问者模式是一种行为型设计模式,它可以让你在不改变对象结构的前提下,定义作用于对象元素的新操作。访问者模式将数据结构和操作分离开来,从而使得数据结构可以保持稳定,而操作可以随意扩展。该模式主要解决的问题是,当我们需要为一个复杂的对象结构添加新的操作时,传统的做法是在每个元素类中添加一个操作方法,这样会导致代码的臃肿和不易维护。而访问者模式则可以将所有操作都封装在一个访问者类中,从而避免了这个问题。访问者模式通常包含两个角色:访问者和元素。访问者是用于定义新的操作的对象,它可以访问元素,并对元素进行处理。

2023-05-24 22:33:00 92

原创 【设计模式】备忘录模式

备忘录模式是一种行为型设计模式,它可以捕获一个对象的内部状态,并在该对象不改变其状态的前提下,将该状态保存起来,以便以后恢复到原先的状态。备忘录模式可以使得对象的状态恢复更加灵活、方便,同时又不破坏对象的封装性。备忘录模式通常包含三个角色:发起人、备忘录和负责人。发起人是需要保存状态的对象,它创建备忘录,并将自己的状态保存到备忘录中。备忘录是用于保存发起人的状态的对象,它可以被传递给负责人进行管理。负责人是用于管理备忘录的对象,它可以将备忘录存储起来或者恢复发起人的状态。

2023-05-24 15:59:08 117

原创 【设计模式】模板方法模式

模板方法模式是一种行为型设计模式,它定义了一个算法的骨架,将算法的具体实现延迟到子类中。模板方法模式可以使得算法的实现更加灵活,同时又不破坏算法的整体结构。模板方法模式通常包含两个角色:抽象类和具体类。抽象类定义了一个算法的骨架,包含一些抽象方法和具体方法。具体类继承抽象类,并实现抽象方法,从而完成算法的具体实现。

2023-05-23 16:56:54 42

原创 【设计模式】策略模式

策略模式是一种行为型设计模式,它可以让一个对象在不同情况下选择不同的算法或策略。策略模式可以将算法的实现和使用分离开来,从而使得算法的实现可以更加灵活和可配置。策略模式通常包含三个角色:策略、具体策略和上下文。策略定义了一个算法族,它们之间可以相互替换。具体策略实现了策略接口,并实现了策略定义的算法。上下文维护一个对于策略对象的引用,并将所有与策略相关的操作委托给当前策略对象处理。

2023-05-23 16:19:16 29

原创 【设计模式】状态模式

状态模式是一种行为型设计模式,它可以让一个对象在不同状态下有不同的行为,从而实现状态的切换。状态模式可以将状态的处理分散到不同的对象中,从而使得每个对象只需要关注自己的状态和行为,而不需要关注其他对象的状态和行为,从而降低了对象之间的耦合度。状态模式通常包含三个角色:抽象状态、具体状态和环境。抽象状态定义了一个接口,用于封装与上下文对象的一个特定状态相关的行为。具体状态实现了抽象状态接口,并实现与该状态相关的行为。环境维护一个当前状态,并将所有与状态相关的操作委托给当前状态对象处理。

2023-05-23 15:43:47 27

原创 【设计模式】中介者模式

中介者模式是一种行为型设计模式,它可以将一个系统中多个对象之间的复杂交互关系进行抽象和封装,从而将对象之间的耦合度降低到最低,提高系统的可维护性和可扩展性。中介者模式通过引入一个中介者对象来协调对象之间的交互,从而避免了对象之间的直接耦合。中介者模式通常包含三个角色:抽象中介者、具体中介者和抽象同事类。抽象中介者定义了同事类之间相互通信的接口,具体中介者实现了抽象中介者接口,并协调各个同事类之间的交互关系。抽象同事类是所有同事类的基类,其中包含了一个指向中介者对象的引用。

2023-05-23 00:32:07 55

原创 【设计模式】命令模式

命令模式是一种行为型设计模式,它将请求封装成对象,从而允许我们将请求参数化、将请求放入队列、记录请求日志、支持可撤销操作等。命令模式的核心思想是将请求的发送者和接收者解耦,使得它们不需要直接交互。命令模式通常包含四个角色:命令接口、具体命令、命令发送者和命令接收者。命令接口定义了命令的执行方法Execute,具体命令实现了命令接口,封装了具体的命令逻辑。命令发送者包含了一个命令接口对象,并调用命令对象的Execute方法来执行命令。命令接收者实现了具体的命令逻辑,被命令对象调用来执行具体的命令操作。

2023-05-22 19:51:22 36

原创 【设计模式】责任链模式

责任链模式是一种行为型设计模式,它允许多个对象来处理同一个请求,形成一条责任链,直到有一个对象处理了该请求或者请求到达链的末尾。责任链模式将请求发送者和接收者解耦,使得请求发送者不需要知道具体的接收者是谁,只需要将请求发送给责任链,由责任链来决定如何处理请求。责任链模式通常包含两个角色:抽象处理者和具体处理者。抽象处理者定义了处理请求的接口,包含了一个指向下一个处理者的引用。具体处理者继承自抽象处理者,实现了处理请求的具体逻辑,如果自己无法处理该请求,就将请求传递给下一个处理者。

2023-05-22 17:50:28 45

原创 【设计模式】代理模式

代理模式是一种结构型设计模式,它允许通过代理对象来控制对实际对象的访问。代理对象充当了实际对象的替身,客户端通过代理对象来访问实际对象,从而实现了对实际对象的间接访问和控制。代理模式通常包含三个角色:抽象主题、实际主题和代理。抽象主题是实际主题和代理的公共接口,它定义了客户端可以使用的方法。实际主题是实际的对象,它包含了具体的业务逻辑。代理是与实际主题实现了相同的接口,它可以代替实际主题来执行某些操作。

2023-05-22 01:58:26 42

原创 【设计模式】享元模式

享元模式是一种结构型设计模式,它通过共享对象来减少系统中的对象数量,从而提高系统的性能和效率。享元模式中的对象被分为两种类型:内部状态和外部状态。内部状态是对象的固有属性,可以被共享;而外部状态是对象的可变属性,不能被共享。享元模式的核心思想是尽可能地共享对象,从而减少对象的数量和内存占用。享元模式通常包含两个核心组件:享元工厂和享元对象。享元工厂负责创建和管理享元对象,它维护了一个享元池,用于存储已经创建的享元对象。当客户端需要获取一个享元对象时,享元工厂会从享元池中查找已经存在的对象。

2023-05-22 01:13:29 116

原创 【设计模式】外观模式

外观模式是一种结构型设计模式,它提供一个简单的接口,来隐藏系统中复杂的逻辑。外观模式通过将系统中的多个复杂对象包装在一个外观类中,来实现这一目的。外观模式通常包含三个核心组件:外观类、子系统和客户端。外观类是外观模式中的核心组件,它为客户端提供了一个简单的接口,来访问系统中的多个复杂对象。子系统是外观类所包装的一组对象,它们实现了系统中的具体功能。客户端是使用外观类的对象,它与子系统直接没有直接的联系,而是通过外观类来访问子系统。

2023-05-21 23:51:49 34

原创 【设计模式】装饰器模式

装饰器模式是一种结构型设计模式,它允许我们在运行时为对象添加新的行为,而无需修改其原始代码。装饰器模式通过将对象放入包装器中,然后将一系列的装饰器嵌套起来,来实现这一目的。装饰器模式包含四个核心组件:组件、具体组件、装饰器和具体装饰器。组件是装饰器模式中所有对象的基类,它定义了公共的接口。具体组件是组件的具体实现。装饰器是所有装饰器的基类,它包含一个组件,并实现了组件的接口。具体装饰器是装饰器的具体实现,它包装了一个组件,并在该组件上添加了新的行为。

2023-05-21 23:24:27 37

原创 【设计模式】组合模式

组合模式是一种结构型设计模式,它将对象组合成树形结构,以表示“部分-整体”的层次结构。组合模式让客户端能够以统一的方式处理单个对象和组合对象,从而简化了客户端的代码。组合模式包含三个核心组件:组件、叶子节点和容器节点。组件是组合模式中所有对象的基类,它定义了公共的接口。叶子节点是组合模式中不能再进行组合的节点,它实现了组件的接口。容器节点是组合模式中可以再进行组合的节点,它包含一个组件列表,并实现了组件的接口。

2023-05-21 19:38:22 36

原创 【设计模式】桥接模式

桥接模式是一种结构型设计模式,它将抽象部分与实现部分分离,使它们可以独立变化。桥接模式可以让抽象部分和实现部分可以独立扩展,从而提高了代码的可扩展性和可维护性。桥接模式包含四个核心组件:抽象部分、实现部分、抽象实现和具体实现。抽象部分定义了高层次的抽象接口,实现部分定义了低层次的实现接口。抽象实现是实现抽象部分的接口,它包含实现部分的引用。具体实现是实现实现部分的具体实现。

2023-05-21 19:03:17 41

原创 【设计模式】适配器模式

适配器模式是一种结构型设计模式,它将一个类的接口转换为另一个类的接口,以便两个接口可以协同工作。适配器模式通常用于将旧的接口转换为新的接口,或将不兼容的接口转换为兼容的接口。适配器模式包含三个核心组件:目标接口、适配器和被适配者。目标接口是客户端期望的接口,适配器实现了目标接口,并将客户端的请求转发给被适配者。被适配者是需要被适配的类,它包含客户端不能直接使用的接口。适配器模式包含两种类型:类适配器和对象适配器。类适配器通过继承实现适配器,它同时继承了目标接口和被适配者。

2023-05-21 17:58:01 77 1

原创 【设计模式】单例模式

单例模式是一种创建型设计模式,它保证一个类只有一个实例,并提供一个全局访问点。单例模式常用于管理共享资源,例如数据库连接池、线程池等。单例模式的核心是一个私有化的构造函数和一个静态方法,通过这两个方法可以确保只有一个实例被创建,并提供一个全局访问点。单例模式通常采用懒汉式或饿汉式两种方式实现。懒汉式单例模式是在第一次访问单例对象时才创建实例。懒汉式单例模式的核心是一个私有的静态变量和一个私有的构造函数。在静态方法中,如果静态变量为空,则创建一个新的实例;否则直接返回现有的实例。

2023-05-21 16:50:10 56

原创 【设计模式】原型模式

原型模式是一种创建型设计模式,它允许通过复制现有对象来创建新对象,而不是通过实例化一个类来创建新对象。使用原型模式可以减少对象的创建时间和资源消耗,同时还可以避免由于对象创建不当而导致的性能问题。原型模式的核心是一个Prototype接口和一个ConcretePrototype类。Prototype接口定义了一个抽象方法Clone,用于复制一个现有对象来创建一个新对象。而ConcretePrototype类实现了Prototype接口,并实现了Clone方法来复制自身。

2023-05-21 14:28:52 60 1

原创 【设计模式】建造者模式

建造者模式是一种创建型设计模式,它将一个复杂对象的构建过程与其表示分离,使得同样的构建过程可以创建不同的表示。建造者模式使得代码的可维护性和可扩展性都得到了很大的提高。建造者模式的核心是一个Builder接口和一个Director类。Builder接口定义了一组抽象方法,用于描述一个复杂对象的构建过程,而Director类负责使用Builder接口来构建这个复杂对象。具体的建造者类实现Builder接口,并实现它的抽象方法以构建具有特定行为的对象。

2023-05-20 01:51:46 65 1

原创 【设计模式】抽象工厂模式

抽象工厂模式是一种创建型设计模式,它提供了一种创建一系列相关或相互依赖对象的接口,而无需指定它们具体的类。抽象工厂模式是工厂方法模式的进一步扩展,它不仅仅关注于单个对象的创建,而是关注于一系列相关对象的创建。抽象工厂模式的核心是一个抽象工厂类,它定义了一组用于创建一系列相关或相互依赖对象的抽象工厂方法。具体的工厂类继承自抽象工厂类,并实现工厂方法以创建具有特定行为的对象。客户端代码只需要调用抽象工厂类的方法即可,无需关心具体的对象类型和创建过程。

2023-05-20 01:21:37 87 1

原创 【设计模式】工厂方法模式

工厂方法模式是一种创建型设计模式,它定义了一个用于创建对象的接口,但是让子类来决定实例化哪个类。工厂方法模式使一个类的实例化延迟到其子类。这种模式提供了一种创建对象的最佳方式,而无需暴露对象的创建逻辑。它通过将对象的实例化委托给子类来解耦客户端代码与具体的对象创建过程。工厂方法模式的核心是一个抽象工厂类,它包含一个用于创建对象的抽象工厂方法。具体的工厂类继承自抽象工厂类,并实现工厂方法以创建具有特定行为的对象。客户端代码只需要调用抽象工厂类的方法即可,无需关心具体的对象类型和创建过程。

2023-05-19 23:23:20 34

原创 【设计模式】简单工厂模式

简单工厂模式是一种创建型设计模式,它提供了一种创建对象的统一方法,而无需暴露对象的创建逻辑。简单工厂模式将对象的创建委托给一个工厂类,该类负责实例化具体的对象并返回它们。客户端只需要提供一个参数,该参数用于指定要创建的对象类型,然后工厂类就会根据这个参数来创建对象。简单工厂模式的核心是一个工厂类,它通常是一个静态类,它包含一个或多个静态方法,用于创建不同类型的对象。客户端只需要调用工厂类的静态方法,并传递一个参数,工厂类就会根据参数创建出相应的对象并返回。

2023-05-19 22:33:40 86

原创 Unity游戏优化之脚本策略(一)

Unity开发中编写代码会涉及多种语言和编程的很多方面,但本篇中脚本仅限于Unity相关的C#代码,关注围绕MonoBehaviour、GameObject和相关功能的问题。 使用最高效的方法获取组件 GetComponent()方法有多个重载版本,它们的性能消耗不同,因此要谨慎地选择该方法的最高效版本。三个可用的重载版本是GetComponent(string)、GetComponent<T>()、GetComponent(typeof(T)),目前Unity的绝大...

2020-06-27 16:21:01 204

原创 自定义角色外观之捏脸

“捏脸”和“换装”在游戏中一般用来实现自定义角色外观的功能,今天先来说说“捏脸”,“换装”放在下一篇博文中介绍。所谓捏脸从程序员的角度来看,就是获取到面部相关部位的SkinnedMeshRenderer组件,然后修改其BlendShape的权重。那么什么是 Blend Shape?它其实是单个网格变形以实现许多预定义形状和任何数量之间组合的技术,在Maya/3ds Max 中我们称它为...

2019-03-09 18:00:50 4738 2

转载 安装完UBUNTU11.10日历乱码或者出现Invalid UTF-8和GRUB乱码问题解决办法

刚刚按装完Ubuntu11.10,启动菜单GRUB那里就乱码了,然后是日期乱码或者出现Invalid UTF-8之类的字样,其实就是安装过程中选择中文的先后问题。解决办法就是用文本编辑器打开/etc/default/locale 文件,把LANG="zh_CN"改为LANG="zh_CN.UTF-8",保存,重启电脑就OK了。至于启动界面乱码 执行sudo dpkg-reconfigu

2011-11-13 01:05:30 926 1

zh-hans.rar

Unity 2019.1 正式版中文包,管方翻译的还是很不错的,下载后放至 Unity 安装目录下的 Editor\Data\Localization 目录中,没有 Localization 目录 就自己创建一个。然后随便新建一个 Unity 项目,点击菜单栏中的: Edit (编辑器)→→ Preferences (首选项)→→ Language (首选项窗口中)→→ Chinese (中文),祝君使用愉快。

2019-05-20

Easy Mobile Pro 2.1.1

unity3D开发用的插件,手机游戏广告,应用内购,游戏服务,通知,分享,等等。Easy Mobile is a many-in-one package that greatly simplifies the implementation of standard features on every mobile game such as advertising, in-app purchasing, game services, notifications, sharing, etc. It takes care of these "necessary evils" so you can focus your time on doing the most important thing in game development: creating fun!

2018-11-16

Unity3D插件EasySave3中文入门教程

Unity3D U3D 热门插件EasySave3中文简单入门教程,非EasySave2,这个插件使用起来本来就挺简单,有中文翻译更是让那些英语渣而且懒得机翻的童鞋省心了。

2018-03-30

Go语言实战 中文高清完整版本pdf

Go语言实战中文高清完整版本pdf,电子版比较方便,纸质版更适合长时间阅读,买实体书之前可以先通过PDF版看看内容是不是自己想要的。或者直接看PDF版就够了。

2018-03-14

Sourcetree 免注册文件

Sourcetree 安装后第一次启动需要注册忒麻烦,放在C:\Users\用户名\AppData\Local\Atlassian\SourceTree\accounts.json

2018-01-04

emacs 中文包

emacs中文包_汉化包,ubuntu和Debian以及分支可用。deb格式。

2011-11-13

codelite中文语言包

codelite中文包 Windows、Linux平台通用,放在CodeLite\locale\zh_CN目录下,必要时手动建立locale\zh_CN目录。然后在Codelite里设置国际化。

2011-10-13

codeblocks10.05 中文包

codeblocks10.05 中文包 Windows、Linux和Mac平台通用,放在share\CodeBlocks\locale\zh_CN目录下,必要时手动建立locale\zh_CN目录。然后在Codeblocks里设置国际化。

2011-10-13

空空如也

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

TA关注的人

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