neilyoung
来吧!迷乱中找到和谐.
发贴: 63
积分: 30
|
于 2003-10-13 16:57
yamakasy wrote: 举个例子: 我现在是某software公司,我对外号称,我什么项目都能做(实现了interface),比如,能够CRM,SCM,MRP,ERP(implements ICRMFactory,ISCMFactory,IMRPFactory,IERPFactory)等等,而实际上我们公司现有员工只能做mrp,erp(却是提供了直接的实现),而对于其他的CRM,SCM等,没有直接实现,而是派遣给另外一个公司,而该公司实现了CRM,SCM的接口(implements ICRMFactory,ISCMFactory),就是一个包装的过程,我只要是有该公司的接口,我就可以包装该公司。另外我还多出了MRP,ERP的功能,特点是你可以向其他CRM公司进行一样的操作来让我们生产CRM产品,一样的接口,在不改变被包装对象的情况下添加新的功能。
1.此软件公司(假设为neilyoung)知道另外的作crm/scm的公司(假设为nirvana),而做crm/scm的nirvana不用知道neilyoung. 2.向neilyoung的有关crm/scm的请求都被正确delegate 给nirvana. nirvana无权向neilyoung分派什麽,他对neilyoung不了解,也就无从分派。 3.对neilyoung来讲,将请求分派是一种资源的调配,是策略(strategy); 对nirvana来讲,在所有的请求来到之前进行相关处理,做一些enhancement,是包装(decorator).
|