zoukankan      html  css  js  c++  java
  • Web项目结构分层

    分层的必要性

    一个项目必然有其相应的业务逻辑,而一般的业务逻辑不可能特别简单。如果将这样的项目写在一层,那么这层的逻辑将会变的复杂,不利于后期的维护。如果根据不同的功能进行分层,每层负责相应的逻辑,则提高程序的可读性,利于后期维护。

    分层介绍

    这里将项目分为5层,如果项目不是特别复杂,可以适当减少层数。5层分别为:业务逻辑层、数据访问称、服务称、表现层和用户层。

    案例

    这里利用一个小案例大概展示下各层的协作,关于各层的详细作用将在以后讲解。案例如下:
    超市分别向一般顾客和零售商出售商品。现在搞打折活动,一般顾客和零售商采用不同的打折策咯。

    业务逻辑层(Business Logic)

    主要包括业务所涉及的实体(Model)和实体(Model)间的业务逻辑,根据具体情况采用相应的设计模式(Design Pattern)使代码满足设计原则。
    声明数据访问的接口IProductRepository,本层不关心数据数据查询和存储的逻辑。

    数据访问称

    这里采用仓储模式Repository,一般采用ORM框架。常用的ORM框架有Entity Framework和NHibernate。

    服务层

    一般需要发布服务的项目需要服务层,根据外观模式Facde隐藏业务业务逻辑。
    定义请求和返回数据类,数据返回类型结构一般为

    public class ProductListResponse
    	{
    		public bool Success { get; set; }
    		public string Message { get; set; }
    		public IList<ProductViewModel> Products { get; set; }
    	}
    

    而且这里会涉及到对象的映射,添加viewModel,只包含需要用户看的的属性(可用第三方插件AutoMapper)。

    表现层

    用户表现层的操作逻辑。常用的模式有MVC和MVVM模式,目的是表现层逻辑与UI层逻辑分离。MVVM的优点是可脱离UI层创建单元测试,但是为每个页面创建指挥类Presenter也会增加代码维护负担。

    UI

    展现给用户的界面层。一般需要结合CSS控制页面样式和Javascript页面交互。

    代码下载

  • 相关阅读:
    Swift
    Swift
    Swift
    Mac
    Mac
    Sqlite数据库 找不到请求的 .Net Framework Data Provider。可能没有安装
    Couchbase的web管理员后台 查看缓存提示警告 Warning: Editing of document with size more than 2.5kb is not allowed的解决方法
    转:asmx迷10分钟升级成wcf熟手指南
    .net4.0下 解决asp.net中“从客户端中检测到有潜在危险的Request.Form值”的错误
    Windows系统下Memcached缓存系列二:CouchbaseClient(c#客户端)的详细试用,单例模式
  • 原文地址:https://www.cnblogs.com/LoveTomato/p/9319128.html
Copyright © 2011-2022 走看看