is-a VS has-a

本文探讨了面向对象设计中的核心概念,包括继承、组合与装饰者模式。解释了何时使用继承来表达is-a关系,何时使用组合(has-a)来增强类的设计灵活性。同时介绍了如何利用装饰者模式动态地为对象添加职责。
A和B
如果是is-a 的关系,那么使用继承。
如果 是has-a,就应该是两个独立的类,

将所有类型的B封装成一个类, 通过setter设为A的一个属性,就是Strategy了, 这样可以在运行时视情况改变a的行为了。

如果想在原有类的一个实例中动态增加属性或者做处理, 使用Decorator层层修饰,就象Inputstream一样。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值