随笔-19  评论-2  文章-1  trackbacks-0
门面模式:
        在外界访问要访问多个内部系统时,并且他与这些内部系统有着复杂的关系时,我们则可以用门面模式来解决这样的问题。
         门面模式他只是提供一个可以共外界方便访问内部子系统的一个接口,他并不会对子系统进行扩展,他只提供子系统所具有的方法。对外界来说,他是一个子系统,但是内部的子系统并不知道有这么一个类。例如:一个学生要去图书馆借书,这里有3个表,rule是记录不同的读者的借书规则(如研究生可以借7而本科生只能借4本),publish表是记录过期未还书的学生,passwork是记录图书馆所颁发过的借书证。如果一个学生要借书,则他必须要有一个在passwork中存在的借书证,并且没有在publish中的情况,则可以保证向该学生提供借阅,但是借阅的书则要按rule中的规则来进行。所以一个学生client借书必须访问这些类,为了便于管理,我们提供一个  FacadeFactory类来处理,这个类提供了所有client向子系统访问的方法。这样对于client来说就轻松多了,也便于我们维护代码了。但是FacadeFactory不能够向client提供内部子系统不存在的方法。
        由于一个系统中所需要的只需要一个实例,则我们可以把门面类设置为单例类,如上面的FacadeFactory,他应该设置为一个单例类,这样就不会发生多个人同时借一本书了。
       
posted on 2005-08-12 19:38 sky 阅读(227) 评论(0)  编辑  收藏

只有注册用户登录后才能发表评论。


网站导航: