本站首页    管理页面    写新日志    退出


«August 2025»
12
3456789
10111213141516
17181920212223
24252627282930
31


公告
 本博客在此声明所有文章均为转摘,只做资料收集使用。

我的分类(专题)

日志更新

最新评论

留言板

链接

Blog信息
blog名称:
日志总数:1304
评论数量:2242
留言数量:5
访问次数:7587764
建立时间:2006年5月29日




[设计模式]『蚂蚁学模式』之迪米特法则(LoD)
软件技术

lhwork 发表于 2007/1/10 9:39:58

一个对象应当对其他对象有尽可能少的了解。

11.1 迪米特法则的各种表述:
1)只与你直接的朋友们通信。
2)不要跟“陌生人”说话。
3)每一个软件单位对其他的单位都只有最少的知识,而且局限于那些与本单位密切相关的软件单位。

11.2 狭义的迪米特法则
如果两个类不必彼此直接通信,那么这两个类就不应当发生直接的相互作用。如果其中的一个类需要调用另一个类的某一个方法的话,可以通过第三者转发这个调用。

朋友圈的确定
“朋友”条件:
1)当前对象本身(this)
2)以参量形式传入到当前对象方法中的对象
3)当前对象的实例变量直接引用的对象
4)当前对象的实例变量如果是一个聚集,那么聚集中的元素也都是朋友
5)当前对象所创建的对象
任何一个对象,如果满足上面的条件之一,就是当前对象的“朋友”;否则就是“陌生人”。
缺点:会在系统里造出大量的小方法,散落在系统的各个角落。

与依赖倒转原则互补使用

1


阅读全文(3674) | 回复(0) | 编辑 | 精华 | 删除
 


[设计模式]『蚂蚁学模式』之实例化简单工厂、工厂方法模式
软件技术

lhwork 发表于 2007/1/10 9:34:04

我想“一切从实例开始”是我最易接受的方式。网上有太多的理论和经验总结,于已而言,吸收亦成乐事。
先看实例,很简单。UML图也懒得画了,更喜欢CRC卡片的方式。
一、简单工厂模式
1. com.cleversoft.designpatterns.simplefactory.Motor.java

阅读全文(2812) | 回复(0) | 编辑 | 精华 | 删除
 


[设计模式]『蚂蚁学模式』之实例化单例模式(一)
软件技术

lhwork 发表于 2007/1/10 9:31:57

饿汉式单例
com.cleversoft.designpatterns.singleton1.Singleton.java:
阅读全文(2727) | 回复(0) | 编辑 | 精华 | 删除
 


[设计模式]『蚂蚁学模式』之实例化单例模式(二)
软件技术

lhwork 发表于 2007/1/10 9:31:03

前面说了单例模式,这次说说单例模式的推广——多例模式。

有上限多例模式
com.cleversoft.designpatterns.multiton.Die.java:
阅读全文(3188) | 回复(0) | 编辑 | 精华 | 删除
 


[设计模式]『蚂蚁学模式』之实例化建造者模式
软件技术

lhwork 发表于 2007/1/10 9:25:51

建造者模式可以将一个产品的内部表象与产品的生成过程分割开来,从而可以使一个建造过程生成具有不同的内部表象的产品对象。

UML图示:


1. com.cleversoft.designpatterns.builder2.PostalClert.java:
阅读全文(3005) | 回复(0) | 编辑 | 精华 | 删除
 


[设计模式]『蚂蚁学模式』之实例化原型模式
软件技术

lhwork 发表于 2007/1/10 9:23:58

用意:通过给出一个原型对象来指明所要创建的对象的类型,然后用复制这个原型对象的办法创建出更多同类型的对象。

1. com.cleversoft.designpatterns.prototype.Prototype.java:
阅读全文(2537) | 回复(0) | 编辑 | 精华 | 删除
 


[设计模式]『蚂蚁学模式』之实例化适配器(Adapter)模式
软件技术

lhwork 发表于 2007/1/10 9:23:22

结构模式:描述如何将类或者对象组合在一起形成更大的结构。

适配器模式:把一个类的接口变换成客户端所期待的另一种接口,从而使原本因接口不匹配而无法在一起工作的两个类能够在一起工作。
使用场合:
1)系统需要使用现有的类,而此类的接口不符合系统的需要。
2)想要建立一个可以重复使用的类,用于与一些彼此之间没有太大关联的一些类,包括一些可能在将来引进的类一起工作。这些源类不一定有很复杂的接口。
3)(对对象的适配器模式而言)在设计里,需要改变多个已有的子类的接口,如果使用类的适配器模式,就要针对每一个子类做一个适配器类,而这不太实际。


类/对象的适配器模式:
1. com.cleversoft.designpatterns.adapter.Target.java:
阅读全文(2813) | 回复(0) | 编辑 | 精华 | 删除
 


[设计模式]Java中的模式 --- 构造者模式
软件技术

lhwork 发表于 2007/1/9 8:49:55

一,一般来说你要做一件复杂的事情的时候,把它分成多个小的部分来做是比较好的方法,
把每个小部分做完,然后结合成一个完整的事情。例如生产一辆汽车,你是一个个零件
生产完了,才组装成一辆辆汽车。这个就是建造模式的工作。
二,建造模式的角色
1、抽象建造者
2、具体构造者
3、导演者
4、产品角色
三、实现代码 :
阅读全文(3320) | 回复(0) | 编辑 | 精华 | 删除
 


[设计模式]Java与模式 --- 适配器模式
软件技术

lhwork 发表于 2007/1/9 8:48:37

适配器模式:
如果你有两个编译好的(无源代码)类,类A有某些功能,但是需要一个xml读取模块才能工作,
这个模块要实现这个接口:
public interface XmlReader{
       public InputStream xmlReader();
}
你的另一个类B恰好有这个功能,但是B实现的是这个接口:
public interface ReaderXml{
       public InputStream readerXml();
}
这个时候我们的做法是写个适配器
public class Adapter implements XmlReader extends B{
       public InputStream xmlReader(){
     &n

阅读全文(2980) | 回复(0) | 编辑 | 精华 | 删除
 


[设计模式]用AOP实现观察者模式
软件技术

lhwork 发表于 2006/12/30 10:07:14

观察者(Observer)模式
    用途:定义对象之间的一对多依赖关系,因此,当一个对象的状态发生改变时,其所有依赖项都会得到通知,并自动更新。
    它是 OO 设计模式的皇后。该模式被人们广泛应用(特别是在 GUI 应用程序中),并构成了 MVC 架构的关键部分。它处理复杂的问题,而在解决这类问题方面表现得相对较好。但是,从实现需要的努力和代码理解的角度来说,它还是带来了一些难以解决的难题。
    不足:观察者(Observer)模式要求您先侵入系统中现有的类,然后才能支持该模式 —— 至少在 Java 语言中是这样。
    而方面可以降低像观察者(Observer)模式这种侵入性模式的负担,使得模式参与者更灵活,因为不需要包含模式代码。而且,模式本身可以变成抽象的基本方面,允许开发人员通过导入和应用它来实现重用,不必每次都要重新考虑模式。
    下面通过一

阅读全文(3618) | 回复(0) | 编辑 | 精华 | 删除
 


« 1 2 »



站点首页 | 联系我们 | 博客注册 | 博客登陆

Sponsored By W3CHINA
W3CHINA Blog 0.8 Processed in 0.133 second(s), page refreshed 144766171 times.
《全国人大常委会关于维护互联网安全的决定》  《计算机信息网络国际联网安全保护管理办法》
苏ICP备05006046号