0

多个源文件共享同个变量的方法

extern可置于变量或者函数前,以表示变量或者函数的定义在别的文件中,提示编译器遇到此变量和函数时在其他模块中寻找其定义。 另外,extern也可用来进行链接指定。用法分析: 在一个变量前加extern 比如:extern unsigned int Test;编译器编译的时候,会把Test当成是外 ...

孔实 发布于 2019-07-05 23:29 评论(0)阅读(39)
0

设计模式-工厂模式

工厂模式的使用场景、让自己的代码解耦更优雅。包含简单工厂、工厂方法、抽象工厂。一文就够了 ...

公众号JavaStorm 发布于 2019-07-05 16:54 评论(0)阅读(235)
0

两张图示轻松看懂 UML 类图

一个类如何表示 1. 第一格为类名 2. 第二格为类中字段属性 格式: 权限:private、public 、protected、default,它们分别对应 、+、 、~ 3. 第三格为类的方法 格式: 返回类型可选 类之间的关系 多看几次上图,对比如下简短说明,再结合实践,相信你很快就可以搞清楚 ...

iamsongpeng 发布于 2019-07-04 13:52 评论(0)阅读(65)
0

设计模式之策略模式和状态模式(strategy pattern & state pattern)

本文来讲解一下两个结构比较相似的行为设计模式:策略模式和状态模式。两者单独的理解和学习都是比较直观简单的,但是实际使用的时候却并不好实践,算是易学难用的设计模式吧。这也是把两者放在一起介绍的原因,经过对比和实例介绍,相信应该会一些比较深刻的感知。最后在结合个人的体会简单聊一下对这两个模式的一些看法。 ...

alpha_panda 发布于 2019-07-03 22:30 评论(0)阅读(421)
0

HeadFirst设计模式(一)策略者模式

最近在看HeadFirst设计模式一书,作为一个半路出家的程序员,感觉很多东西需要学习,学习的路程中有些东西学了当时觉得理解了,但日常工作中没有使用到渐渐的自己就忘记了。 上面就是写者系列的博客的原因,主要是为了巩固知识,忘记在那个博主那边看过这么一句话,知识学了后总结了才变成自己的。 策略者模式 ...

终身制此 发布于 2019-07-03 09:29 评论(0)阅读(50)
0

设计模式之装饰器模式(decorator pattern)

装饰器模式主要对现有的类对象进行包裹和封装,以期望在不改变类对象及其类定义的情况下,为对象添加额外功能。是一种对象结构型模式。需要注意的是,该过程是通过调用被包裹之后的对象完成功能添加的,而不是直接修改现有对象的行为,相当于增加了中间层。类似于python中的@装饰器。 下面还是按照老规矩,先来了解 ...

alpha_panda 发布于 2019-06-30 18:19 评论(0)阅读(314)
1

设计模式之观察者模式(observer pattern)

观察者模式主要用于处理对象间的一对多的关系,是一种对象行为模式。该模式的实际应用场景比较容易确认,当一个对象状态发生变化时,所有该对象的关注者均能收到状态变化通知,以进行相应的处理。本文希望通过简单的介绍和分析,能让读者对观察者模式有一个简单直观的认识和感知,以便在实际开发中根据需要灵活运用。 1. ...

alpha_panda 发布于 2019-06-29 20:26 评论(0)阅读(320)
0

大话设计模式笔记(五)の代理模式

举个栗子 故事是这样的... 一个小伙子喜欢上了隔壁班的一个妹子,但是又不认识,也害羞不好意思主动去说话,于是拜托了同样在这个班的一个朋友去传递自己想要送的礼物。。。 代码实现 该模式就不上什么简单实现了,直奔完整实现。 被追求者 想要送的礼物 追求者 代替追求者的人 测试 测试结果 代理模式 定义 ...

callmeDevil 发布于 2019-06-29 18:33 评论(0)阅读(113)
0

设计模式之工厂模式(factory pattern)

工厂顾名思义就是创建产品,根据产品是具体产品还是具体工厂可分为简单工厂模式和工厂方法模式,根据工厂的抽象程度可分为工厂方法模式和抽象工厂模式。该模式用于封装和管理对象的创建,是一种创建型模式。本文从一个具体的例子逐步深入分析,来体会三种工厂模式的应用场景和利弊。 1. 简单工厂模式 该模式对对象创建 ...

alpha_panda 发布于 2019-06-28 17:18 评论(0)阅读(285)
0

工厂模式

目录 简单工厂 工厂方法 抽象工厂 简单工厂 定义: 提供一个创建对象实例的功能,而无需关心具体的实现。被创建的实例对象可以是接口,抽象类,也可以是具体的类 角色: 工厂(creator)角色 简单工厂的核心,负责具体类的创建,实现创建对象的内部逻辑,返回抽象产品角色。工厂类创建产品的方法可以被外界 ...

TysonLee 发布于 2019-06-27 21:14 评论(0)阅读(43)
0

设计模式之适配器模式(adapter pattern)

适配器主要用于接口的转换或者将接口不兼容的类对象组合在一起形成对外统一接口,是一种结构性模式,其本质是是一个中间件,适用于类及其对象。本文希望通过简单的介绍和分析,能让读者对适配器模式有一个简单直观的认识和感知。 1.目的 对现有的类的接口进行转换以符合新的需求。 2.动机 通过转换或者组合,间接复 ...

alpha_panda 发布于 2019-06-27 17:10 评论(0)阅读(334)
0

设计模式之迭代器与组合模式(四)

因为这系列篇幅较长,所以在这里也不进行任何铺垫,直奔主题去啦。 利用组合设计菜单 我们要如何在菜单上应用组合模式呢?一开始,我们需要创建一个组件接口来作为菜单和菜单项的共同接口,让我们能够用统一的做法来处理菜单和菜单项。换句话说,我们可以针对菜单或菜单项调用相同的方法。 让我们从头来看看如何让菜单能 ...

小酒窝 发布于 2019-06-26 12:38 评论(0)阅读(148)
0

大话设计模式笔记(四)の装饰模式

举个栗子 问题描述 可以给人搭配嘻哈服或白领装的程序。 简单实现 代码 测试结果 存在缺陷 如果需要增加“超人”装扮,会导致需要修改“Person”类,违背了 开放 封闭原则 简单实现进化版 代码 测试结果 存在问题 现在如果要加超人装扮,只要增加子类就可以了,但是这么做虽然把“服装”类和“人”类分 ...

callmeDevil 发布于 2019-06-23 17:53 评论(0)阅读(42)
0

设计模式之迭代器与组合模式(三)

现在我们已经能愉快地看着一页一页罗列出来的菜单进行点菜了。现在又有的小伙伴希望能够加上一份餐后甜点的“子菜单”。怎么办呢?我们不仅仅要支持多个菜单,甚至还要支持菜单中的菜单。 如果我们能让甜点菜单变成餐厅菜单集合的一个元素,那该有多好。但是根据现在的实现,根本做不到呀。我们想要的是这样的: 我们需要 ...

小酒窝 发布于 2019-06-22 12:05 评论(1)阅读(140)
1

设计模式-模板方法

模板方法 关注公众号 JavaStorm 获取更多精彩。 模板方法模式在一个方法中定义了一个算法骨架,并且 final 修饰防止子类重写。方法中包含一些抽象方法,也就是一些步骤延迟到字类实现。模板方法使得在不改变算法结构的情况下,重新定义算法中的某些步骤。完整代码可以查看GitHub: "https ...

公众号JavaStorm 发布于 2019-06-21 19:19 评论(0)阅读(35)
0

Matlab空对象模式

在空对象模式(Null Object Pattern)中,一个空对象取代 NULL 对象实例的检查。Null 对象不是检查空值,而是反应一个不做任何动作的关系。这样的 Null 对象也可以在数据不可用的时候提供默认的行为。 AbstractObject.m RealObject.m NullObje ...

sw-lab 发布于 2019-06-19 00:37 评论(0)阅读(41)
0

浅谈游戏开发中常见的设计模式

前言 因为游戏开发在架构上要考虑性能和实际需求,在尽量不引入第三方库、框架的前提下进行开发,所以在编码时候会经常用到设计模式对代码进行复用,对业务逻辑架构解耦,尽量减少hard code。 单例模式(Singleton Pattern) 单例模式经常会用在逻辑上唯一的对象(通常用于重量级资源)上,如 ...

JasonKoo 发布于 2019-06-18 23:03 评论(0)阅读(176)
0

Matlab混入模式(Mixin)

Mixin是一种类,这种类包含了其他类要使用的特性方法,但不必充当其他类的父类。Matlab无疑是支持多继承的。我们可以利用 Matlab 的这种特性,实现一种叫做 Mixin 的类。MixIn的目的就是给一个类增加多个功能,这样,在设计类的时候,我们优先考虑通过多重继承来组合多个MixIn的功能, ...

sw-lab 发布于 2019-06-18 22:56 评论(0)阅读(26)
1

设计模式之迭代器与组合模式(二)

在上次的文章中,我们通过层层引导,已经知道了迭代器模式的由来。现在我们再好好总结下。 关于 迭代器模式 ,你所需要知道的第一件事情,就是它依赖于一个名为迭代器的接口。这是一个可能的迭代器的接口: 现在,我们一旦有了这个接口,就可以为各种对象集合实现迭代器:数组、列表、散列表...如果我么想要为数组实 ...

小酒窝 发布于 2019-06-18 13:53 评论(0)阅读(175)
0

聊聊 Laravel 5.5 的 「自动发现」

ThinkSNS是什么? ThinkSNS(简称TS),一款全平台综合性社交系统,目前最新版本为ThinkSNS+、ThinkSNS V4 ThinkSNS【简】。 看了Taylor Otwell发表的Package Auto-Discovery In Laravel 5.5第一反应是"囧" 为啥。 ...

ThinkSNS 发布于 2019-06-17 14:38 评论(0)阅读(41)