可扩展设计落地

系统扩展的几种形式是什么?

www.cnblogs.com/Mainz/archi…

1)直接修改代码。

2)直接修改代码,但只局限在一个类或方法中。

3)利用继承,编写子类继承以后的类,在子类里添加新的业务逻辑。

4)运行时对象装配。 将类的实例化逻辑移到运行时,通过反射,来进行装配。Spring目前做的主要就是这些事情。到这个时候才真正满足开闭原则。 Spring给我们提供了一个非常灵活扩展的基础技术架构。

5)基于模块的运行时动态扩展。 OSGi给出了解决方案,可以实现模块级别的动态扩展,而且是运行时的。所谓运行时模块的动态扩展,比如说你需要增加一些新的功能,你可以将新开发的类和文件按照Bundle进行组织,然后直接扔到运行时环境下,这些功能就可以用了。

6)基于中间语言。框架通常定义了一些Hotspot(热点),在这些点上,可以进行扩展。

哪些设计模式可以实现可扩展?

工厂模式

抽象工厂模式

观察者模式:很方便增加观察者,方便系统扩展

模板方法模式:很方便的实现不稳定的扩展点,完成功能的重用

适配器模式:可以很方便地对适配其他接口

代理模式:可以很方便在原来功能的基础上增加功能或者逻辑

责任链模式:可以很方便得增加拦截器/过滤器实现对数据的处理,比如struts2的责任链

策略模式:通过新增策略从而改变原来的执行策略

如何通过接口、抽象类实现可扩展?

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值