第2章 网店实体主业务性耦合的支撑实现

nopCommerce程序主要和核心业务是对网店进行程序上的逻辑实现,其它的所有功能或业务的逻辑实现都网店实现的功能的支撑或对玉业务进行完善和延展的子业务逻辑的实现(子业务逻辑包含有:客户(网店拥有者/消费者)、商品、物流、支付、退/定等)。

    所以从业务逻辑的实现上来看,nopCommerce程序第一个需要被耦合的就是网店实体,实际上从耦合的角度来看nopCommerce开者在开发实现中也是这么干的,并在此基础上逐步的填充其它的基础性耦合、功能性耦合、业务支撑性耦合和子业务耦合,从而组合为一个完善的、有机运行的对网店进行程序上的逻辑实现的nopCommerce程序。

 

 

 

 

 

007 ISettings、Setting基础性支撑耦合

    ISettings接口,把当前程序中所有继承于该接口的具体实现类的所定义的默认数据,在程序第一次安装时把这些默认数据持久化到数据库的设置表(Setting)中,在其后程序的执行过程中,以保证程序的正常执行,同时用于程序与设置表进行默认数据的交互操作。

    Setting类,把当前程序中所有继承于“ISettings”接口的具体实现类的所定义的默认数据,在程序第一次安装时把这些默认数据持久化到数据库的设置表(Setting)中,在其后程序的执行过程中通过该实体实例,通过泛型定义对用于所有继承于“ISettings”接口的具体实现类,进行默认数据的实例化操作,以保证程序的正常执行,同时实现设置默认数据的交互操作。

008 GenericAttribute、LocalizationSettings、ILocalizedEnum、 ILocalizedEntity、Language、LocaleStringResource、LocalizedProperty功能性支撑耦合

    GenericAttribute类,该类为指定实体类,获取/设置新属性成员名称及其实例值,并把该新属性成员名称及其实例值持久化到数据库常规属性表中。

    LocalizationSettings类,继承于ISettings接口,通过该类及其属性成员实例,把本地化设置相关的一些默认数据值,在程序第一安装时,把这些默认数据值持久化到数据库的设置表(Setting)中,从而保证程序在其后的执行过程中客户端的浏览器会按照这些默认数据值的设置,来对原来的英文替换为本地化语言进行显示(这里特指:简体中文)。

    注意:

    该新属性成员的名称符串在原实体类中一定没有被定义,通过该类中的“Key”属性成员为相应的实体类,灵活和低成本定义一个新的新属性成员及其实例值,提供了相应的具体实现。

    IlocalizedEnum接口,该接口没能任何的成员定义,该接口在整个程序并没有被任何的具体实现类所继承或其它类所调用,它只是“nopCommerce”开发者预留的一个可供扩展接口。

    注意:

    IlocalizedEnum接口只是“nopCommerce”开发者预留的一个可供扩展接口,但在整个程序的实现中并不被继承或调用,所以即使删除这些两个类的定义对于整个“nopCommerce”程序而言并无任何不良影响。

    ILocalizedEntity接口,该接口没能任何的成员定义,它只是指示所有继承了该接口的具体实现类,都可以进行本地化的实现,即在浏览器的页面中能够把这些类中的英语字符串替换为本地化的语言(这里特指:简体中文)。   

    Language类,继承于IStoreMappingSupported接口,通过该实体类,获取一个指定的语言实例,当程序执行时根据所获取的语言实例,对客户端浏览器中的英文替换为相应的本地化语言文字(这里特指:简体中文)。

LocaleStringResource类,通过该实体类把页面中所使用默认的英文与一/多种本地化语言构建相应的映射关系,在程序执行时根据客户端浏览器和映射关系,把页面控件中的默认的英文替换为相应的本地化语言(这里特指:简体中文)。

LocalizedProperty类,该类为指定实体类,获取/设置新属性成员名称及其本地化实例值,并把该新属性成员的名称其及本地化实例值持久化到数据库本地化属性表中。

    注意:

    该新属性成员的名称符串在原实体类中一定没有被定义,通过该类中的“LocaleKey”属性成员为相应的实体类,灵活和低成本定义一个新的新属性成员及其本地化实例值,提供了相应的具体实现。

    “nopCommerce”是一个国际性的电商程序,所以对多语言进行功能性支撑,是“nopCommerce”开发者必须考虑的问题和实现的功能,如果国内的开发都利用“nopCommerce”程序进行二次开发,且这个电商程序只在国内使用那么“nopCommerce”程序中所有与本地化及其多语言支撑的相关定义都可以被删除或重构。

009 NopCustomerDefaults子业务支撑耦合

    NopCustomerDefaults类,通过该类及其属性成员实例,获取一些用户相关的常量数据值,在第一次程序安装时把这些常量数据值持久化到角色表、常规属性表中, 并在其后的程序执行提供相应的默认数据,以保证程序的正常执行。

010 IStoreMappingSupported、Store、StoreMapping主业务支撑耦合

    IStoreMappingSupported接口,通过该接口中属性成员实例,获取/设置一个值,该值指示所有继承于当前接口“IStoreMappingSupported”的具体实现类实例是否只限定对某一个指定的网店进行业务实现支撑。

Store类,继承于 ILocalizedEntity接口,通过该实体类及其属性成员实例,定义了当前程序的核心(主)业务实体实例:网店。

StoreMapping类,该类获取/设置一个指定实体类的实例,并指定实体类的实例的编号值及其名称持久化到数据库网店映射表中。

    注意:

    该指定的实体类一定没有继承“ILocalizedEntity”接口, 为相应的实体类,灵活和低成本的对对网店进行支撑,提供了相应的具体实现。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值