`
lingqi1818
  • 浏览: 253387 次
  • 性别: Icon_minigender_1
  • 来自: 杭州
社区版块
存档分类
最新评论
文章列表
敏捷软件开发宣言: 个体和交互 胜过 过程和工具 可以工作的软件 胜过 面面俱到的文档 客户合作 胜过 合同谈判 响应变化 胜过遵循计划 今天看了robert martin的PPP一书的第一部分,敏捷开发 回顾了自己曾经加盟过的几个公司, ...
懒得写,以下抄梁飞博客:http://javatar.iteye.com JMM规范: The rules for happens-before are: Program order rule. Each action in a thread happens-before every action in that thread that comes later in the program order. Monitor lock rule. An unlock on a monitor lock happens-before every subsequent lock on t ...
1.避免过多的同步 // Page 196 import java.util.*; public abstract class WorkQueue { private final List queue = new LinkedList(); private boolean stopped = false; protected WorkQueue() { new WorkerThread().start(); } public final void enqueue(Object workItem) { synchroni ...

全军覆没

鲁能,哎。。。我无语,这种心理素质?看着印尼人兴奋的表情,做为中国人我丢脸啊,汗颜啊,哎。。。不说了。睡觉。害我浪费学习的时间来看这场破球!
1.当创建一些常用对象的时候,考虑可以使用静态方法,但是方法尽量描述自己 比如:valueOf,getInstance 2.不要以为把类声明为abstract了,就不会被初始化,因为别人可能会来继承你。推荐把构造子私有化。 3.可以通过静态初始化方式避免对象重复初始化。 4.当你对内存进行管理的时候,千万注意引用被非法持有的情况。 5.尽量避免finalize()方法。
1. 意图 保证一个类仅有一个实例,并提供一个访问它的全局访问点。 2. 适用性 在下面的情况下可以使用S i n g l e t o n模式 • 当类只能有一个实例而且客户可以从一个众所周知的访问点访问它时。 • 当这个唯一实例应该是通过子类化可扩展的,并且客户应该无需更改代码就能使用一个 扩展的实例时。 考虑下面的问题: 单例真的安全吗? 如何避免出现多个实例?
1. 意图 用原型实例指定创建对象的种类,并且通过拷贝这些原型创建新的对象。 2.动机 比如我们要生产J10战斗机,但是由于技术问题不知道怎么生产,咋办?那就从苏联买一些米格战斗机,这就是原型,然后,嘿嘿。。。(以上纯属YY) 3. 适用性 当一个系统应该独立于它的产品创建、构成和表示时,要使用原型模式 • 当要实例化的类是在运行时刻指定时,例如,通过动态装载 • 为了避免创建一个与产品类层次平行的工厂类层次时 • 当一个类的实例只能有几个不同状态组合中的一种时。建立相应数目的原型并克隆它们 可能比每次用合适的状态手工实例化该类更方便一些。 4.图例 这里以女娲造人为例,女娲设计人的时候肯定 ...
1. 意图 定义一个用于创建对象的接口,让子类决定实例化哪一个类。Factory Method使一个类的 实例化延迟到其子类。 2.动机 比如你要生产一种枪,但是不知道枪的具体型号,那就把这个任务交给你的手下去做吧。 3.适用性 当一个类不知道它所必须创建的对象的类的时候。 • 当一个类希望由它的子类来指定它所创建的对象的时候。 • 当类将创建对象的职责委托给多个帮助子类中的某一个,并且你希望将哪一个帮助子类 是代理者这一信息局部化的时候。 4.图例 还是以生产汽车为例
1.意图 将一个复杂对象的构建与它的表示分离,使得同样的构建过程可以创建不同的表示。即按步骤的进行创建复杂对象 2.动机 当你需要按照不同的顺序创建一个复杂的对象的时候,可以考虑使用该模式 3.适用性 • 当创建复杂对象的算法应该独立于该对象的组成部分以及它们的装配方式时。 • 当构造过程必须允许被构造的对象有不同的表示时。 4.图例 这里以创建一辆汽车为例
1.意图 提供一个创建一系列相关或者互相依赖对象的接口,而无须制定其他具体的类。也就是说有一组工厂,他们都生产互相依赖的对象,所以他们可以抽出一个抽象工厂。 2.别名 kit 3.动机 比如有一个奶制品工厂,有好几个产品线,比如有豆奶产品线,有牛奶产品线等等。这个时候就可以使用这个模式。或者说设计一个论坛的样式,有windows风格,有macos风格等等。 4.适用性 • 一个系统要独立于它的产品的创建、组合和表示时。 • 一个系统要由多个产品系列中的一个来配置时。 • 当你要强调一系列相关的产品对象的设计以便进行联合使用时。 • 当你提供一个产品类库,而只想显示它们的接口而不是实现时 ...
一.Java序列化方式 1.默认方式序列化 1)实现serializable接口 2)实现序列化的代价: 降低该类的灵活性 增加了错误和不安全的可能 增加测试负担 如果不可序列化类的子类要实现序列化,父类必须要提供一个无参的构造函数。 3)UID的作用,其实该字段除了可以在序列化过程中加速判断错误,其他时间毫无意义,比如即使UID一样,但是你增加一个字段还是不会报错,比如你减少一个字段,照样报错,当然在自定义序列化方式的时候,你需要兼容默认序列化方式。 2.自定义序列化方式 比如序列化一个List结构的类,就应该考虑是否使用自定义序列化方式 通过transient修饰,就可以从默认序列化方式中 ...
1.寻找合适的对象,如何将现实世界种的对象抽象出来,或者找出现实世界中不存在的对象,这步将直接导致后面设计的好坏。因为如果不能找到合适的对象,那么你的设计又将在哪里呢? 2.决定对象的粒度 尽量将粒度细化到最 ...

JMX简介

最近在看JBOSS4.X的源代码,4.x以及之前的系列都是基于JMX的微内核。5.x之后已经转为osgi。这里胡乱介绍下JMX 1.JMX就是为了解决网络组建管理的问题,将各组件透明化的进行管理,并且提供不同的连接访问方式。 2.JMX分层: 1)装配层,在这层所有需要管理的组件都在这里,也就是所谓的mbean,分为动态和标准mbean,当然还可以细分,主要这2种。 2)代理层,通过提供mbean server的方式提供组件的注册,方便用户调用。 这个代理层次包括: 一个MBeanServer 代理服务,如 事件服务 监视器服务 MLet服务(动态加载) 相关服务 3)分布式服务层 ...
09.04.26 whose is this pen? 这是谁的笔? whose is XX的语法结构 XX为代词,可以加上修饰,比如this pen,that pen? what color's your coat? 你的衣服是什么颜色的? what color's xx? XX为代词,可以加上修饰,比如your pen,that pen?   ================================================== 09.4.28 are you english? 你们是英国人吗? yes we are. 恩,我们是的。 are用来描述复数,比如what c ...
今天周六,本来计划早上至少睡到10点再起床的,没想到7点就被小区改造的民工给吵醒了,只好起床作罢。。。 起床后下载了新概念英语,看了几课,都很简单,感觉很爽,哈哈。缺陷就是那个老师长的不咋滴,嘿嘿。。。 10点开始看一本很老的书《UML核心技术教程》2001年希望出版社的。看到晚上7点左右,终于迷迷糊糊的结束了。感觉以前的书质量确实不咋的,翻译也不太好,讲的也不是很系统。不过还是有点收获,至少补习了UML的知识。哈哈。打算下一步把23个设计模式都用UML自己画一遍。 预约了下星期二浙江省人民医院的专家门诊。到时候去看下医生&……%¥#&#@
Global site tag (gtag.js) - Google Analytics