`
dotcpp
  • 浏览: 60157 次
  • 性别: Icon_minigender_1
  • 来自: 重庆
社区版块
存档分类
最新评论

ASP.NET设计模式读书笔记(1)---分离关注点

 
阅读更多

以前在学习设计模式的时候觉得很多模式都是纸上谈兵,在实际使用时根本就无从下手。就算是在ASP.NET MVC中这种感觉也很强烈,直到看了《ASP.NET设计模式》这本书后,才对设计模式的认识有了质的提高。第 一篇就记录一下3.1.2节的分离关注点这个例子吧!

对于Layered.Model结构图如下:




 
 

【StarUML】不能使用表示静态类,悲剧!!!

 

Product类表示商品信息;

Price类用于商品价格计算,包含建议零售价(RRP),实际售价(SellingPrice),折扣信息(Discount);

IStrategy接口用于处理折扣策略;

StrategyFactory工厂类根据用户的类型,生成对应的折扣策略;

CustomerType表示客户类型,Standard表示没有折扣,Trade表示可以使用折扣;

IRepository接口为数据库访问提供接口;

ProductService为上层应用取商品列表提供一个接口;

ProductListExtensionMethod类是为了实现扩展方法,将IRepository中取得的IList<Product>全部应用上折扣策略

 

Layered.Service的结构图如下:



 ProductViewModel:用于显示的强类型视图;

ProductListRequest:用于模拟用户请求;

ProductListResponse:用户回复;

ProductServiceExtensionMethod:实现Product与List<Product>的扩展方法,转变为ProductViewModel;

ProductService:为Presentat提供调用接口;

 

Layered.Presentation结构图

 

 ProductListPresenter:为WebUI提供调用接口;

IProductListView:Web页面必须继承此接口,实现Display方法

  • 大小: 172.9 KB
  • 大小: 77.7 KB
  • 大小: 39.5 KB
分享到:
评论

相关推荐

    ASP.NET学习笔记

    这种分离关注点的设计,使得代码更易于测试和维护。 在ASP.NET Core中,ASP.NET的许多组件被设计为可插拔的服务,如依赖注入、中间件等。这使得开发者可以根据项目需求选择使用哪些功能,提高了灵活性和性能。ASP...

    ASP.NET学习大全(初学者整理过的笔记)

    ASP.NET MVC(Model-View-Controller)是另一种开发模式,它鼓励分离关注点和更灵活的架构。开发者可以独立地处理视图、模型和控制器,更适合大型项目和测试驱动开发。 5. **ASP.NET Core** ASP.NET Core是ASP...

    学习ASP.NET MVC框架揭秘笔记第一章

    本笔记涵盖了 ASP.NET MVC 框架的基本概念和设计模式,旨在帮助读者理解 ASP.NET MVC 框架的核心思想和设计原则。 1. 自治视图(Autonomuous View) 在传统的应用开发中,我们通常将 UI 界面的呈现、用户交互操作...

    《ASP .NET 2.0 网络编程学习笔记》配套光盘的内容

    2. **ASP.NET MVC(Model-View-Controller)**:尽管2.0版本时MVC模式相对较新,但已经被引入,为开发者提供了另一种更灵活的开发方式,强调了分离关注点和测试驱动开发。 3. **ADO.NET Entity Framework**:这是一...

    asp.net学习笔记

    2. **ASP.NET MVC**:另一种轻量级的开发模式,强调分离关注点,更适合大型复杂项目。 3. **Razor视图引擎**:用于生成HTML代码,提供了简洁的语法,用于编写ASP.NET MVC或Web Pages应用。 五、数据访问 ASP.NET...

    asp.net编程学习笔记

    这种分层结构有助于分离关注点,使得开发更加模块化,易于维护和扩展。 - **实例解释**: - **显示层** (`UI`): 相当于公司的销售部经理,负责了解市场需求,做出产品规划。 - **业务逻辑层** (`BLL`): 类似于公司...

    ASP.NET课堂笔记

    5. **MVC模式**:ASP.NET MVC是一个框架,它鼓励使用分离关注的原则,将模型、视图和控制器分开,提供更灵活的开发模式。 6. **Web Forms和ASP.NET Core**:Web Forms是ASP.NET早期的开发模型,而ASP.NET Core是其...

    ASP.NET购物网站实现

    3. **MVC(Model-View-Controller)模式**:ASP.NET MVC框架鼓励分离关注点,将业务逻辑(模型)、用户界面(视图)和应用控制(控制器)分开,增强了代码的可读性和可维护性。 4. **路由系统**:ASP.NET的路由系统...

    传智播客asp.net web开发课件和部分我的学习笔记

    5. **MVC(Model-View-Controller)模式**:ASP.NET MVC 是一种轻量级、基于模式的Web应用程序架构,鼓励清晰的分离关注点,提高代码可测试性和可维护性。 【Web Forms与MVC的区别】 ASP.NET Web Forms 和 ASP.NET...

    ASP.NET Web程序设计 (2)..zip

    3. **ASP.NET MVC**:可能涵盖了另一种开发模式,即ASP.NET MVC框架,它更侧重于分离关注点和测试驱动开发。 4. **ASP.NET Core**:可能也提到了微软的最新跨平台框架ASP.NET Core,它结合了Web Forms和MVC的优势,...

    c#给学员的笔记(六) ASP.NET

    【ASP.NET 知识点详解】 ASP.NET 是微软.NET Framework的一部分,它是一个用于构建Web应用程序的框架,允许开发人员使用C#等编程语言创建动态、交互式的网页和Web服务。在C#给学员的笔记中,我们将重点探讨如何使用...

    基于asp.net的精品课程

    2. **MVC模式**:探讨Model-View-Controller架构,理解如何分离关注点,提高代码可读性和可维护性。 3. ** razor语法**:学习使用 Razor视图引擎编写简洁的HTML和C#混合代码。 4. **路由和依赖注入**:理解如何...

    aspdot视频学习笔记新手学习aspdot教程

    除了Web Forms,ASP.NET还提供了Model-View-Controller(MVC)架构,这是一种设计模式,有助于实现清晰的代码结构和分离关注点。在MVC中,模型负责数据和业务逻辑,视图负责显示,控制器处理用户请求并协调模型和...

    ExtJs5+Spring.Net+MVC项目搭建笔记

    在ASP.NET MVC框架下,我们可以轻松地创建RESTful API和分离关注点,从而实现更好的可测试性和可维护性。 在项目搭建过程中,首先需要配置开发环境,包括安装.NET Framework、Visual Studio或其他支持ASP.NET MVC的...

    MVC设计模式讲解笔记

    1. **解耦合**:MVC模式通过分离关注点,使得模型、视图和控制器之间松耦合,有利于代码的重用和独立开发。 2. **模块化**:每个组件都有明确的职责,方便团队协作,一人可以专注于一个部分的开发。 3. **易于维护**...

    ASP.NET MVC学习笔记

    ASP.NET MVC是一个基于模型-视图-控制器(MVC)设计模式的开源框架,用于构建高效、可测试的Web应用程序。MVC模式鼓励分离关注点,使得开发者能够更清晰地组织代码,提升代码的可读性和可维护性。在ASP.NET MVC中,...

    (经典)Spring.NET学习笔记

    6. **服务定位器(Service Locator)**:Spring.NET的服务定位器模式可以方便地查找和管理服务,有助于实现解耦和模块化设计。 7. **企业服务支持**:Spring.NET还支持各种企业级服务,如邮件服务、任务调度、缓存...

    Visual c#学习笔记

    2. **ASP.NET MVC**:Model-View-Controller架构模式,强调分离关注点,提高代码可维护性。 3. **ASP.NET Core**:跨平台的轻量级框架,支持.NET Core,提供高性能和云优化的Web开发。 4. **Entity Framework**:...

    学习笔记(主要是传智播客)

    5. **ASP.NET MVC框架**:MVC(Model-View-Controller)模式是一种设计模式,ASP.NET MVC提供了实现这种模式的框架。它鼓励分离关注点,将业务逻辑、数据模型和用户界面分开。 6. **路由系统**:ASP.NET的路由系统...

Global site tag (gtag.js) - Google Analytics