设计模式思想总结

设计模式的实现手段无非就是两种,一种是组合,一种是继承。

而组合优于继承的地方是,因为在一个类里面组合进另一个类的对象,这两个类之间的耦合关系是松散耦合。这是设计模式的根本点所在,所有的复用性和灵活性、扩展性都是基于这一点。这是因为本类和组合进来的类都可以独立的自由的进化,本类可以扩展生成自己的子类等,而这些扩展的类都可以和组合进来的类合作,而组合进来的类也可以独立的扩展自己的子类实现,而这些子类实现都可以与本类进行无缝合作。这种多维度的自由变化会使软件具有很好的灵活性和可扩展性。比如本类新增一个实现,只要继承这个本类,这个新增加的类就可以和父类中组合进来的类进行合作,而根本不需要更改其他地方,同样,组合类增加一个实现,也无需更改本类及其子类的任何代码。

所以组合的方法很好的适应了开闭原则。新增功能或实现时,只需要新增类就行,不需要更改已有类。

同样,组合也能很好的设计出适合单一原则的系统。因为,对于组合进本类的同一功能的多种不同实现,只要组合进多种不同实现的父类(接口)就行,而这个父类的各种实现都可以独自的封装在一个类中,每个类只负责一种实现,而本类可以和这多种不同实现可以实现多种不同的组合关系,可以应对各种复杂多变的需求,而不需要把功能都写在一个类中。

这里有个例外,在抽象工厂里,如果新增一个产品,则需要更改代码,而新增工厂实现则不需要。


继承主要使用的情况是,当需要继承一个类的时候,最好是出于实现这个类中定义的方法的目的,而不是扩展被继承的类的功能。也就是说,继承时只能是实现抽象类中的抽象方法或借口,而不能出于扩展父类功能的目的。如果有扩展功能的需求,最好就是新增一个与需要继承的父类拥有共同父类的类,用以实现不同的实现。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值