Book Review about Head First Design Pattern 6

本文探讨了CommandNullobject的设计模式,介绍了Adapter的不同形式及其与Facade的区别,并提出了设计原则Least Knowledge,强调在设计系统时应注意对象间的交互方式。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

Command
Null object: 在一些程序中,要针对对象是否为null做出判断,根据不同的结果作出不同的处理。但是一旦这样的情况比较多的时候,写出的程序就比较繁琐。这时可以为对象建立一个Null Object, 具有普通对象所有的方法,但是不进行任何操作,这样就可以对所有情况进行统一处理。

Adapter
分为object adapter, class adapter。
Object Adapter: 通过composition的方式,更具有灵活性。
Class Adpater: 通过多重继承的方式,Java不支持,但是可以减少代码量。

Adpater和Facade最大的区别在于两个模式的目的性。Adpater转换接口;Facade提供简洁的接口。

Principle 7: Least knowledge。When you are designing a system, for any object, be careful of the number of classes it interacts with and also how it comes to interact with those classes.

应用这条规则,主要是在调用一个方法时,要考虑这个方法是否属于以下几种对象,如果是,才能调用。
1. 属于对象本身。
2. 属于做为参数传递进来的对象。
3. 属于在本地方法中创建的对象。
4. 属于对象本身所拥有的对象。
 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值