`
文章列表
原型模式虽然是创建型的模式,但是与工程模式没有关系,从名字即可看出,该模式的思想就是将一个对象作为原型,对其进行复制、克隆,产生一个和原对象类似的新对象。本小结会通过对象的复制,进行讲解。在Java中,复制对象是通过clone()实现的,先创建一个原型类: [java] view plaincopy public class Prototype 
工厂类模式提供的是创建单个类的模式,而建造者模式则是将各种产品集中起来进行管理,用来创建复合对象,所谓复合对象就是指某个类具有不同的属性,其实建造者模式就是前面抽象工厂模式和最后的Test结合起来得到的。我们看一下代码: 还和前面一样,一个Sender接口,两个实现类MailSender和SmsSender。最后,建造者类如下: [java] view plaincopy public
单例对象(Singleton)是一种常用的设计模式。在Java应用中,单例对象能保证在一个JVM中,该对象只有一个实例存在。这样的模式有几个好处: 1、某些类创建比较频繁,对于一些大型的对象,这是一笔很大的系统开销。 2、省去了new操作符,降低了系统内存的使用频率,减轻GC压力。 3、有些类如交易所的核心交易引擎,控制着交易流程,如果该类可以创建多个的话,系统完全乱了。(比如一个军队出现了多个司令员同时指挥,肯定会乱成一团),所以只有使用单例模式,才能保证核心交易服务器独立控制整个流程。 首先我们写一个简单的单例类:

java 线程

    博客分类:
  • java
浅谈java内存模型        不同的平台,内存模型是不一样的,但是jvm的内存模型规范是统一的。其实java的多线程并发问题最终都会反映在java的内存模型上,所谓线程安全无 非是要控制多个线程对某个资源的有序访问或修改。总结java的内存模型,要解决两个主要的问题:可见性和有序性。我们都知道计算机有高速缓存的存在,处 理器并不是每次处理数据都是取内存的。JVM定义了自己的内存模型,屏蔽了底层平台内存管理细节,对于java开发人员,要清楚在jvm内存模型的基础 上,如果解决多线程的可见性和有序性。       那么,何谓可见性? 多个线程之间是不能互相传递数据通信的,它们之间的沟通只能通 ...
一、下载并安装openfire 1.到http://www.igniterealtime.org/downloads/index.jsp下载最新openfire for mac版 比如:Openfire 3.8.1,下载后的文件:openfire_3_8_1.dmg 2.点击安装,并执行默认操作 3.启动openfire服务 在系统偏好设置的其他里,点击openfi ...

mac下安装mysql

一、安装 到MySQL官网上http://dev.mysql.com/downloads/mysql/,下载mysql可安装dmg版本 比如:Mac OS X ver. 10.7 (x86, 64-bit), DMG Archive 下载完的文件为:mysql-5.6.10-osx10.7-x86_64.dmg 1.点击,安装包里的 2.再点击安装 安装好后,再系统偏好设置的其他里,会出现如下图标: 3.点击此图标,跳出对话框 点击Start MySQL Server按钮,启动mysql 二、打开终端,定义mysql别名 输入alias命令(一般的my ...
  在iOS4.0系统中,官方SDK提供了一个QLPreviewController,使用它就可以让我们的App在iPhone/iPad中直接预览各个文件了。官网案例:https://developer.apple.com/library/ios/samplecode/DocInteraction/Introduction/Intro.html 官方的开发文档中说明其支持的文件类型有:   iWork文档 微软Office97以上版本的文档 RTF文档 PDF文件 图片文件 文本文件和CSV文件 使用方法也很简单,直接alloc出一个 QLPreviewCont ...
场景(scene): 也有人叫做屏幕或舞台,是一个独立的程序流,一个程序可以有很多场景但当前运行的场景就只有一个。比如游戏中可以有介绍场景,菜单场景,第一关场景,过场1场景,第二关场景,胜利场景等。一个场景由多个层(layer)组成,层就相当于photoshop里的图层。    层(layer): 层是一个可以拖拽的区域,并且知道如何拖拽它自身,他是半透明的,允许其他层在它下面,可以包含精灵(Sprite)或者其他层  精灵: 本质上是一个图片,可可move,rotate,scale,animate,例如游戏里的怪兽,坦克,飞镖,子弹等 导演(director): 相当于拍剧 ...
这篇博客主要是带领大家一起了解整个游戏的执行过程,其中涉及的一些譬如导演,场景,层之类的概念将会在后面讲解。 看main函数的区别: #import <UIKit/UIKit.h>// Under iOS and the Simulator, we can use an alternate Accelerometer interface#import "AccelerometerSimulation.h"//程序入口int main(int argc, char *argv[]) {        NSAutoreleasePool * pool = [[ ...
官网:http://www.cocos2d-x.org/ 下载一个稳定版的cocos2d-x (网址:http://download.cocos2d-x.org/  Github Repository :https://github.com/cocos2d/cocos2d-x) 解压后  打开终端,进入cocos2d-x/tools/project-creator文件夹,运行create-projects.py脚本,例如: $ cd cocos2d-x/tools/project-creator $ ./create-multi-platform-projects.py -p ...
当需要判断iOS系统版本的时候,相信很多人都会这么干: #define SystemVersion [[UIDevice currentDevice] systemVersion].floatValue 现在告诉屌丝们一个更好的办法就是其实系统已经做了类似的宏定义,不需要我们再去定义了 在Simulator-IOS7.0/usr/include/Availability.h中已经定义了很多系统的宏:   然后使用: #ifdef __IPHONE_7_0  //iOS7的新特性代码#endif 或者是使用: #if __IPHONE_OS_VERSION_MAX_ALLOWE ...
在ios7里面如果有滚动视图的时候,比如UITableView,UIScrollView的时候有时候会偏移20像素。这时候可以这样设置if ([[UIDevice currentDevice] systemVersion].floatValue>=7.0) { self.automaticallyAdjustsScrollViewInsets = NO;}
WWDC 2012 Session笔记——202, 228, 232 AutoLayout(自动布局)入门 这是博主的WWDC2012笔记系列中的一篇,完整的笔记列表可以参看这里。如果您是首次来到本站,也许您会有兴趣通过RSS,或者通过页面左侧的邮件订阅的方式订阅本站。 AutoLayout在去年的WWDC上被引入Cocoa,而在今年的WWDC上,Apple不惜花费了三个Session的前所未见的篇幅来详细 地向开发者讲解AutoLayout在iOS上的应用,是由起原因的:iPhone5的屏幕将变为4寸,开发者即将面临为不同尺寸屏幕进行应用适配的工 作。Android平台开发中最令人 ...
错误:Invalid code signing.The executable 'payload/xxx.app/xxx' must be signed with the certificate that is contained in the provisioning profile。 解决:去除多余的Distribution证书,只留一个,it works。
问题 令人头疼的是,xcode每次升级都会使用最新版本的sdk,而且只有最新版本的sdk,对之前老版本的sdk都没有默认安装,这搞的最近我很头 疼, 最近我升级到Xcode5.0版本,编译后运行后,在ios7.0上显示ui非常乱,我不可能自己重新换一套正对ios7.0的ui,即使换也需要时间, 这个版本不可能换,需要设计师重新设计一套,汗,只能自己折腾,果然Google是好帮手,可以在新版本Xcode中添加老版本的sdk: 解决方法 首先得有老版本的sdk,如果你已经安装了Xcode5.0,那么老版本的sdk iPhoneOS6.1.sdk已经被删除了,你可以从同事电脑里拷贝一 ...
Global site tag (gtag.js) - Google Analytics