随笔分类 -  设计模式

摘要:1.简介 一个抽象类公开定义了执行它的方法的方式(模板),它的子类可以按需要重写方法实现功能。 就是给一些功能相同的类定义一个抽象父类,当作这些类的模板。 阅读全文
posted @ 2018-07-28 14:59 wskxy 阅读(125) 评论(0) 推荐(0) 编辑
摘要:1.简介 代理模式给某一个对象提供一个代理对象,并由代理对象控制对原对象的引用。通俗的来讲代理模式就是我们生活中常见的中介。 可以做:日志代理、缓存代理、异常代理、延迟代理、权限代理、单例代理 2.一个简单的代理模式例子 我们模拟人们购票环节,一个人买车票得自己坐车去车站排队购票 如果有一个代理人帮 阅读全文
posted @ 2018-07-25 10:27 wskxy 阅读(97) 评论(0) 推荐(0) 编辑
摘要:1.简介 享元模式(Flyweight Pattern)主要用于减少创建对象的数量,以减少内存占用和提高性能。这种类型的设计模式属于结构型模式,它提供了减少对象数量从而改善应用所需的对象结构的方式。享元模式尝试重用现有的同类对象,如果未找到匹配的对象,则创建新对象。 我们这里新建H、E、L、O四个类 阅读全文
posted @ 2018-06-29 12:51 wskxy 阅读(176) 评论(0) 推荐(0) 编辑
摘要:1.简介 装饰器模式(Decorator Pattern)允许向一个现有的对象添加新的功能,同时又不改变其结构。这种类型的设计模式属于结构型模式,它是作为现有的类的一个包装。 这种模式创建了一个装饰类,用来包装原有的类,并在保持类方法签名完整性的前提下,提供了额外的功能。 我们模拟游戏角色进行装饰器 阅读全文
posted @ 2018-06-28 18:56 wskxy 阅读(120) 评论(0) 推荐(0) 编辑
摘要:1.简介 相比于简单工厂,工厂方法是使用一个工厂类去创建一个对象 IRace接口和Human类、NE类都和上文简单工厂一样 然后我们添加一个Human工厂HumanFactory,用这个类来实例化Human 同理添加一个NE工厂NEFactory Program: 从这里看,我们可能会觉得工厂方法只 阅读全文
posted @ 2018-06-27 16:59 wskxy 阅读(168) 评论(0) 推荐(0) 编辑
摘要:1.简介 简单工厂模式就是将类的实例化都放在一个工厂类中,用这个类来解耦上层代码 这样的好处比如:当某个类的名字修改了,只需修改工厂类中对应的这个类的名字就可以了 我们模拟魔兽争霸游戏来简单介绍一下 首先,我们建一个接口,用来定义种族动作 新建四个类,继承这个接口,表示四个种族 新建一个工厂类,用来 阅读全文
posted @ 2018-06-26 23:07 wskxy 阅读(148) 评论(0) 推荐(0) 编辑
摘要:1.回顾单例模式(Singleton Pattern) 设置一个静态的构造函数,让Student仅能被new一个,给所有调用返回一个相同的实例 StudentPrototype类代码如下: Program代码如下: 因为studentPrototype1和studentPrototype2是调用了同 阅读全文
posted @ 2018-06-26 11:29 wskxy 阅读(132) 评论(0) 推荐(0) 编辑
摘要:1.添加三个类文件,定义三个类(猫、狗、老鼠) 猫是主要事件 2.当猫叫时,狗也叫,老鼠跑(这就是观察者模式) Program程序如下 3.委托和事件的区别 另外,委托可以按委托调用函数的顺序查看委托函数,而事件查看不了 阅读全文
posted @ 2018-06-18 16:49 wskxy 阅读(145) 评论(0) 推荐(0) 编辑
摘要:1.单线程的单例模式 class定义如下: Program如下: 结果:仅实例化一次 2.多线程的单例模式(也支持单线程) 1)多线程Program如下: 2)class定义的三种模式 双if+lock模式 静态构造函数模式 静态变量模式 阅读全文
posted @ 2018-06-03 16:48 wskxy 阅读(139) 评论(0) 推荐(0) 编辑

点击右上角即可分享
微信分享提示