理解zope3 的适配器
2009-07-22 10:04
204 查看
zope 3有三种类型的组件,内容组件,适配器和实用组件
1. 内容组件
内容组件相当于我们平时常说的entity,model,比方说User,Category,Department,Order 都可以理解为内容组件, 例子
class IUser(Interface):
name=Attribute('name')
password=Attribute('password')
email=Attribute('email')
class User(object):
implements(IUser)
def __init__(self,name,password,email):
self.name=name
self.password=password
self.email=email
2. 适配器
适配器可以理解为我们平常所用的服务类,服务类一般操作一个特定的内容组件,比方说UserService会操作User对象,而OrderService会操作Order对象。服务类通常会有一个或多个方法。这个被操作的对象在zope3中就是适配者。在zope3中,适配器可以有以下规律
①实现一接口
②适配一个或多个对象,多个对象叫多适配器
③对象通过构造函数传入
这同一般我们所用的java/c# 静态服务类不同,在那种情况中,所操作对象通常是作为第一个参数传入的,如
interface IUserService{
void login(User user);
}
在zope3中,适配器有服务单一对象的,服务多对象的叫多适配器,另外还有订阅适配器和handler适配器
让我们来看看zope 3的适配器写法,可能像这样
Code
gsm=getGlobalSiteManager()
gsm.registerAdapter(UserService)
user=User('jjx','123456','jjx@email.com')
user_service=gsm.getAdapter(user,IUserService)
user_service.login()
1. 内容组件
内容组件相当于我们平时常说的entity,model,比方说User,Category,Department,Order 都可以理解为内容组件, 例子
class IUser(Interface):
name=Attribute('name')
password=Attribute('password')
email=Attribute('email')
class User(object):
implements(IUser)
def __init__(self,name,password,email):
self.name=name
self.password=password
self.email=email
2. 适配器
适配器可以理解为我们平常所用的服务类,服务类一般操作一个特定的内容组件,比方说UserService会操作User对象,而OrderService会操作Order对象。服务类通常会有一个或多个方法。这个被操作的对象在zope3中就是适配者。在zope3中,适配器可以有以下规律
①实现一接口
②适配一个或多个对象,多个对象叫多适配器
③对象通过构造函数传入
这同一般我们所用的java/c# 静态服务类不同,在那种情况中,所操作对象通常是作为第一个参数传入的,如
interface IUserService{
void login(User user);
}
在zope3中,适配器有服务单一对象的,服务多对象的叫多适配器,另外还有订阅适配器和handler适配器
让我们来看看zope 3的适配器写法,可能像这样
Code
gsm=getGlobalSiteManager()
gsm.registerAdapter(UserService)
user=User('jjx','123456','jjx@email.com')
user_service=gsm.getAdapter(user,IUserService)
user_service.login()
相关文章推荐
- 以系统观点理解总线、接口(端口)、适配器和控制器
- 【Android学习笔记】ListView适配器的基本理解
- C++容器适配器的理解与使用
- 以系统观点理解总线、接口(端口)、适配器和控制器(REV#3)
- 理解函数对象的函数适配器
- 函数对象和函数适配器的个人理解。我是一个小菜鸡
- 谈谈对容器适配器的理解
- C++中适配器的理解
- 适配器(理解)
- 关于在适配器中更新ui的方法(写这个东西只是为了自己理解,不要看,大家看不懂)
- Android开发基本入门,对于事件、适配器的理解不够深入
- Android中常用适配器理解及使用
- 容器适配器的理解(转)
- 关于设计模式装饰器、适配器、代理模式的关键点理解
- 理解向日葵甘特之三(系统集成适配器SFDataXml和SFDataProject)
- STL适配器的初步理解
- C++中如何理解容器适配器
- 设计模式理解(四)结构型——适配器
- 自定义适配器重写getView()方法和setTag()、getTag()的理解。
- 【Android 个人理解(五) 】适配器的设计思维