大家好,老胡又和大家见面了.首先承认今天的博客有点标题党了,人生是没有存档,也没有后悔药的.有存档和后悔药的,那是游戏,不知道这是不是游戏让人格外放松的原因之一. 今天恰逢端午放假,就让我们来试着做一个小游戏吧,顺带看看备忘录模式是如何在这种情况下面工作的. 游戏背景 这是一个简单的打怪游戏,有玩家,有怪兽,玩家作为主角光环,有如下三个特殊能力 攻击怪兽有暴击几率 有几率回避怪兽攻击 可以自己治疗一定生命值 游戏实现 角色类 角色基类 首先是角色类,角色类提供玩家和怪兽最基本的抽象,比如血量.攻…
一.模式解析 备忘录对象是一个用来存储另外一个对象内部状态的快照的对象.备忘录模式的用意是在不破坏封装的条件下,将一个对象的状态捕捉(Capture)住,并外部化,存储起来,从而可以在将来合适的时候把这个对象还原到存储起来的状态.备忘录模式常常与命令模式和迭代子模式一同使用. 备忘录模式可以根据客户指令,将相应的对象特有属性进行快照,如果客户要恢复对象,则根据快照提供的特有属性进行还原. 二.模式代码 package memento.patten; /** *备忘录类,同时指定要保存的对象属性…
作者:小傅哥 博客:https://bugstack.cn - 原创系列专题文章 沉淀.分享.成长,让自己和他人都能有所收获! 一.前言 实现不了是研发的借口? 实现不了,有时候是功能复杂度较高难以实现,有时候是工期较短实现不完.而编码的行为又是一个不太好量化的过程,同样一个功能每个人的实现方式不一样,遇到开发问题解决问题的速度也不一样.除此之外还很不好给产品解释具体为什么要这个工期时间,这就像盖楼的图纸最终要多少水泥砂浆一样.那么这时研发会尽可能的去通过一些经验,制定流程规范.设计.开发.评审…
一.PATHINFO功能简述 搞PHP的都知道ThinkPHP是一个免费开源的轻量级PHP框架,虽说轻量但它的功能却很强大.这也是我接触学习的第一个框架.TP框架中的URL默认模式即是PathInfo模式.这个模式很强大,每当你访问一个网站必然带有一长串参数,但是太长又显得不太友好.对于访问一个以MVC模式搭建的网站,必然带有M.C.A三个参数即module.controller.action,这些参数需要还需要用&符号隔开,假若参数量很多,就显得特别的不友好啦.然而PathInfo模式功能就是…
在前段时间呢陆陆续续的更新了一系列关于重构的文章.在重构我们既有的代码时,往往会用到设计模式.在之前重构系列的博客中,我们在重构时用到了“工厂模式”.“策略模式”.“状态模式”等.当然在重构时,有的地方没有点明使用的是那种设计模式.从今天开始,我们就围绕着设计模式这个主题来讨论一下我们常用的设计模式,当然“GoF”的23种设计模式不会全部涉及到,会介绍一些常见的设计模式.在接下来我们要分享的设计模式这个系列博客中,还是以Swift语言为主来实现每种设计模式的Demo.并且仍然会在GitHub上进…
原文链接:http://www.c-sharpcorner.com/UploadFile/3d39b4/crud-using-the-repository-pattern-in-mvc/ 系列目录: Relationship in Entity Framework Using Code First Approach With Fluent API[[使用EF Code-First方式和Fluent API来探讨EF中的关系]] Code First Migrations with Entity…
在qt中,使用Singleton模式时一定要小心.因为Singleton模式中使用的是静态对象,静态对象是直到程序结束才被释放的,然而,一旦把该静态对象纳入了Qt的父子对象体系,就会导致不明确的行为.并且,就算我们小心谨慎的不把父对象指针传入构造函数(即不给该静态对象制定父对象),根据Qt的某些机制,还是有可能重定义父对象的,而这恰恰是最致命的,最容易疏忽的. 所以说,在QT中使用Singleton模式,确切说是"静态对象",一定要小心,特别是那些继承于QWidget的嵌套窗口类,就算…
转载自:http://www.jcodecraeer.com/a/anzhuokaifa/androidkaifa/2015/0425/2782.html 英文原文:Introduction to Model-View-Presenter on Android 转载此译文需注明出处: http://jcodecraeer.com/a/anzhuokaifa/androidkaifa/2015/0425/2782.html 这是一篇观点比较激进的文章,完全否定了MVC模式在安卓开发的中的意义,认为…
我个人更喜欢把委托(Delegate)模式称为代理(Proxy)模式.还是那句话,第一次接触代理模式是在Java中接触的,在Java中实现代理模式和接口是少不了的.当时学习Spring的时候用到了接口回调,其实就是实现的委托代理模式.简单的说代理就是把相应的功能交给实现接口的相应的类中来解决.在OC中没有接口该如何实现代理呢?前面的博客中笔者说提了一句,在OC中的协议和Java中的接口极为相似,都是只声明方法而不去实现,方法的实现在OC中交个遵循协议的类,而在Java中方法的实现交给实现接口的类…
1,其实有时候一直在找借口不去思考这个问题,总是以赶项目为由,没有很认真的思考这个问题,为什么我们要在项目中使用MVP模式,自己也用MVP也已经做了两个项目,而且在网上也看了不少的文章,但是感觉在高层次的思想上还是没有去理解它,都是泛泛而谈的"解耦"."扩展"的字眼,作为一个初中级开发者,我需要的是在实际开发场景中去一一对比一下,让开发者通过比较出来的优点来选择MVP模式,那么下面就带着大家来简单的分析分析. 2,现在有这样的一个需求场景,用户点击按钮从网络上获取数…