插件内部的JAVA类应合理划分包,以便于通过浏览JAVA包的方式找到对应的类。一般插件内的JAVA类应按如下规则存放:

 

  根:  指插件拥有的顶级JAVA包,例如com.zving.article。一般在根下存放本插件定义的所有接口、IPlugin类以及最重要的几个IExtendItem实现类。以com.zving.article为例:

 

  ArticleContent.java

 

  ArticleContentType.java

 

  ArticleCoreDataUser.java

 

  ArticlePlugin.java

 

  IAutoFormatRule.java

 

 

  action包: 存放扩展行为类。本插件注册的扩展行为类存放在action包下。以com.zving.article.action:

 

  AfterContentSaveAction.java

 

  ArticleCatalogRecycleBinDeleteAction.java

 

  BeforeContentPublishAction.java

 

  CatalogConfigUIAction.java

 

  SiteConfigUIAction.java

 

  UserPreferencesUIAction.java

 

 
 

  bl 包: 存放业务逻辑类,BL类中一般是对数据库进行操作的业务逻辑。简单的不涉及到数据库操作的工具方法应该放到util包。以com.zving.article.bl为例:

 

  ArticleBL.java

 

 

  code包:  存放固定代码项的类。本插件注册的固定代码项放到单独的code包,是因为固定代码项比较特殊又很常用,且经常会一个插件注册多个,所以单独放到一个包中以便于查找。以com.zving.block.code为例:

 

  BlockStatus.java

 

  RecommendType.java

 

 

  config包:  存放固定配置项的类。本插件注册的固定代码项放到单独的config包,是因为固定配置项项比较特殊又很常用,且经常会一个插件注册多个,所以单独放到一个包中以便于查找。以com.zving.media.config为例:

 

  AudioPlayerPath.java

 

  VideoPlayerPath.java

 

 

  point包:  存放扩展点要求的扩展行为的虚拟类。根据插件体系的要求,定义扩展点时必须指定对应的扩展行为的父类,point包即用于存放这些父类。以com.zving.media.point为例:

 

  AudioTagSqlExtend.java

 

  BeforeAudioDeleteAction.java

 

  BeforeFileDeleteAction.java

 

  BeforeImageDeleteAction.java

 

  BeforeVideoDeleteAction.java

 

  FileTagSqlExtend.java

 

  ImageGroupTagSqlExtend.java

 

  VideoTagSqlExtend.java

 

 

  privilege包: 存放权限项相关的类。以com.zving.block.privilege为例:

 

  BlockDeletePriv.java

 

  BlockEditPriv.java

 

  BlockPublishPriv.java

 

  BlockRecommendPriv.java

 

  BlockSiteAddPriv.java

 

  ContentAddBlockPriv.java

 

  ContentSetRecommended.java

 

 

  property 存放扩展属性类,即继承自com.zving.contentcore.IProperty的类。以com.zving.article.property为例:

 

  AutoStatFlag.java

 

  ThirdPartyStatCode.java

 

  UseThirdPartyStat.java

 

 

  service 存放扩展服务相关类,主要是继承自com.zving.framework.extend.IExtendService的类,以及相关辅助类。以com.zving.article.service为例:

 

  AutoFormatRuleService.java

 

 

  tag 存放模板标签类。以com.zving.article.tag为例:

 

  CmsArticleNavBarTag.java

 

  CmsArticleTag.java

 

 

  template 存放模板类型相关类。以com.zving.article.template为例:

 

  ArticleDetailTemplate.java

 

  ArticleIdentificator.java

 

  ArticleListTemplate.java

 

 

  ui: 存放UIFacade类。以com.zving.article.ui为例:

 

  ArticleDownLoadPDFUI.java

 

  ArticleExportUI.java

 

  ArticleHistoryUI.java

 

  ArticleInputNewWordManagerUI.java

 

  ArticleReprintEditorUI.java

 

  ArticleUI.java

 

  AutoFormatRuleUI.java

 

 

  util 存放工具类(包括定时任务、缓存的类)。以com.zving.contentadvance.util为例:

 

  ContentAdvanceCache.java

 

  ContentadvanceCancelTopTask.java

 

  DimensionCatalogCache.java

 

  DimensionCatalogUtil.java

 

  VirtualCatalogUtil.java

 

 

  view 存放文档工作台的视图类。以com.zving.block.view为例:

 

  BlockView.java

 

 

  item包:  存放扩展项的类,除权限项、扩展属性、标签、模板类型这些已经有专门的包存放之外的所有扩展项存放在此包里。以com.zving.comment.item为例:

 

  CommentAPIMethod.java

 

  CommentTemplateEditorTool.java

 

  ContentCommentDealPriv.java

 

  MemberCommentMenu.java

 

  MemberCommentTemplateProperty.java