定制服务模式

定制服务的模式也可应用到面向对象的软件开发领域。当一个系统能对外提供多种类型的服务时,一种方式是粗粒度的接口,把所有的服务放在一个接口中声明,这个接口臃肿庞大,所有的使用者都访问同一个接口。还有一种方式就是设计精粒度接口,对服务精心分类,把相关的一组服务放在一个接口中,通过对接口的继承,可以派生出新的接口,针对使用者的需求提供特定的接口

上表中的极速精英套餐SuperSpeedCombo和金融专网套餐FinanceCombo属于两种定制的服务接口,它们可以通过继承以上5个精粒度的接口而形成,这样的接口也称为复合接口。

服务接口定制好以后,接下来的问题是如何实现这些接口。为了提高代码的可重用性,类的粒度也应该尽可能小,所以首先为精粒度的接口提供实现类。

以下列出其中的一个服务实现类:

public class BroadbandServiceImpl implements BroadbandService{
    private int speed;//网速
    public BroadbandServiceImpl(int speed){
        this.speed = speed;
    }
    //连接网络
    public void connect(String username,String password){...}

    //断开网络
    public void disconnect(){...}
}

同上,将精粒度的接口一一创建实现类,得到精粒度的类。

那么对于SuperSpeedCombo 和 FinanceCombo 复合接口,如何实现它们呢?以 SuperSpeedCombo接口的实现类 SuperSpeedComboImpl为例,可以采用组合手段,复用 BroadbandService接口、VirusKillingService接口和MailboxService接口的实现类的程序代码。

那么什么是组合关系呢?在这再复习一下,所谓的组合和继承都是提高代码可重用性的手段,继承最大的弱点就是破坏封装,子类和父类之间紧密耦合,子类依赖于父类的实现,子类缺乏独立性,而组合关系不会破坏封装,整体类与局部类之间松耦合,彼此相互独立。当然组合关系也有缺点:创建整体类的对象时需要创建所有局部类的对象,而继承关系在创建子类的对象时无须创建父类的对象。

比如要在SuperSpeedComboImpl采用组合手段加入宽带上网服务BroadbandService:

public class SuperSpeedComboImpl implements SuperSpeedCombo{
    private BroadbandServiceImpl BroadbandService;
    public SuperSpeedComboImpl(BroadbandServiceImpl BroadbandService){
        this.BroadbandService = BroadbandService;
    }
}

此外,对于极速精英套餐和金融专网套餐,都有付费方式和价格这些属性,可以把这些属性放到同一个Payment中,这符合构建精粒度的对象模型的原则,下面是Payment的源程序:

public class Payment{
    public static final String TYPE_PER_YEAR="按年付费";
    public static final String TYPE_PER_MONTH="按月付费";
    private String type;//付费方式
    private double price;//价格
    public Payment(String type, double price) {
        this.type = type;
        this.price = price;
    }
    //省略type属性和price属性的get/set方法
    ...
}

SuperSpeedComboImpl类的源程序如下:

public class SuperSpeedComboImpl implements SuperSpeedCombo{
    private BroadbandServiceImpl BroadbandService;
    private VirusKillingService virusKillingService;
    private MailboxService mailboxService;
    private Payment payment;
    public SuperSpeedComboImpl(BroadbandServiceImpl broadbandService, VirusKillingService virusKillingService,
            MailboxService mailboxService, Payment payment) {
        super();
        BroadbandService = broadbandService;
        this.virusKillingService = virusKillingService;
        this.mailboxService = mailboxService;
        this.payment = payment;
    }
    public BroadbandServiceImpl getBroadbandService() {
        return BroadbandService;
    }
    public void setBroadbandService(BroadbandServiceImpl broadbandService) {
        BroadbandService = broadbandService;
    }
    public VirusKillingService getVirusKillingService() {
        return virusKillingService;
    }
    public void setVirusKillingService(VirusKillingService virusKillingService) {
        this.virusKillingService = virusKillingService;
    }
    public MailboxService getMailboxService() {
        return mailboxService;
    }
    public void setMailboxService(MailboxService mailboxService) {
        this.mailboxService = mailboxService;
    }
    public Payment getPayment() {
        return payment;
    }
    public void setPayment(Payment payment) {
        this.payment = payment;
    }
}

下面创建一个极速精英套餐服务的一个实例:

//创建付费信息,按年付费,价格1555
Payment payment = new Payment(Payment.TYPE_PER_MONTH,1555);

//创建宽带上网服务,网速2Mbps
BroadbandService broadbandService = new BroadbandServiceImpl(2);

//创建邮箱服务,50MB容量
MailboxService mailboxService = new MialboxServiceImpl(50);

//创建在线杀毒服务
VirusKillingService virusKillingService = new VirusKillingServiceImpl();

//创建极速精英套餐服务
SuperSpeedCombo superSpeedCombo =
    new SuperSpeedComboImpl(broadbandService,mailboxService,virusKillingService,payment);

时间: 2024-11-05 02:25:39

定制服务模式的相关文章

云计算三种服务模式SaaS、PaaS和IaaS及其之间关系(顺带CaaS、MaaS)

云计算架构图 很明显,这五者之间主要的区别在于第一个单词,而aaS都是as-a-service(即服务)的意思,这五个模式都是近年来兴起的,且这五者都是云计算的落地产品,所以我们先来了解一下云计算是什么. 1.云计算是什么?云计算(cloud computing)是基于互联网的相关服务的增加.使用和交付模式,通常涉及通过互联网来提供动态易扩展且经常是虚拟化的资源.云是网络.互联网的一种比喻说法.云计算甚至可以让你体验每秒10万亿次的运算能力,拥有这么强大的计算能力可以模拟核爆炸.预测气候变化和市

APICloud的APP定制服务为什么与众不同?

APICloud的APP定制服务为什么与众不同? 现如今移动互联网高速发展,手机APP爆炸式增长,无论是大型企业还是初创企业对APP定制需求持续增长,但是开发一款适合自己的APP不是易事.无论是时间.成本.人员都是繁重的,而这时APICloud为开发者从"云"和"端"两个方向提供API,简化移动应用开发技术,让移动应用的开发周期从一个月缩短到7天.不仅降低的成本缩短了时间还为有APP定制需求的客户解决所有问题. APICloud的APP定制与众不同之处在小编看来主要

APICloud推出“云定制”服务,在“无接触”下帮助企业应对数字化需求

2020年1月23日10点,武汉"封城":2020年1月25日(春节)湖北省多地"封城":全国各省更是相继出台企业延迟复工文件.远程办公.对于外地员工返回工作地自我隔离等方法以保证人员安全. 三天前,股市迎来了鼠年第一个股票交易日,上证指数.深证综指开盘分别下跌8.99%.8.73%,开盘跌幅创出近24年来最大记录,3000多只股票跌停.这些一定程度上反映了此次疫情对我国经济短期影响巨大. 与此同时,2月3日"全民SOHO"首日,钉钉.企业微信因

C/C++/IOS/Android/MFC/python等软件定制服务,有人需要吗?

服务内容: 欢迎光临本店http://isoftware.taobao.com/,本地承接各种软件定制服务.主要包括如下四大类: 1.C,C++,MFC,visual studio开发 2.iOS/Android 手机App开发 3.matlab/python/R语言程序开发 4.计算机专业.自动化控制专业,机器学习.模式识别等软件程序 团队介绍: 宏佳科技团队成员都是来自浙大的硕士和博士,曾任职于华为.百度等知名大公司,长期从事软件开发工作,具有丰富的软件开发经验.团队从2011年组建起就开始

致力云安全服务模式 安全狗获近5000万融资

互联网安全事件频发 业内呼吁加强安全防护 近年来互联网已深入到各行各业的发展中并逐渐渗透到人们的工作生活,随着"互联网+"这一概念的提出,使得云计算等得到了更广泛推广与应用.与此同时,互联网发展所带来的弊端也日渐猖獗.最近一段时间,我国互联网企业安全事故频发:5月,支付宝和携程网均出现了大面积网络瘫痪事故,6月,部分政府网站门户网站等被黑客攻击,此外,用户个人信息被盗.网络诈骗犯罪等行为猖獗,也暴露出来互联网发展中存在的安全隐患. 厦门服云信息科技有限公司CEO陈奋在接受记者采访时表示

初识云计算的三种服务模式 (IaaS SaaS PaaS)

最近公司在使用其他云服务的同时,要封装自己的云服务,下面作为开发产品前的热身,来了解云计算中的三种服务模式,笔者也是从网络上查找,进行综合总结.请拍.. 三种服务模式 根据现在最常用,也就是比较权威的NIST(National Institute of Standard and Technology)美国国家标准技术研究院定义,云计算主要分为三种服务模式,而且这三层的分法重要是从用户体验的角度出发的: IaaS IaaS全拼是Infrastructure as a Service,基础设置即服务

云分类及服务模式

一.云分类 目前看来,云主要有以下几种分类.随着云计算的不断发展,可能会产生更多种类的云. ·公有云 公有云通常指第三方提供商为用户提供的能够使用的云,公有云一般可通过Internet 使用,可能是免费或者成本低廉.这种云有许多实例,可在当今整个开放的共有网络中提供 服务. ·私有云 私有云为一个企业单独使用而构建,提供对数据.安全性和服务质量的最有效控制.私有云可由IT部门或云平台业务提供商搭建.企业可以在搭建的云平台基础上部署自己的网络 或应用服务.私有云可部署在企业的数据中心中,也可统一部

New Internet:大数据挖掘 电子书 PDF 下载 制作 定制 服务

内容推荐 <New Internet:大数据挖掘>全面地介绍了如何使用数据挖掘技术从各种结构的(数据库)或非结构(Web)的海量数据中提取和产生业务知识.作者梳理了各种数据挖掘常用算法和信息采集技术,系统地描述了实际应用时如何在互联网日志分析.电子邮件营销.互联网广告和电子商务上进行数据挖掘,着重介绍了数据挖掘的原理和算法在互联网海量数据挖掘中的应用.<New Internet:大数据挖掘>主要特点:全面介绍了数据挖掘和大数据的基本概念和技术:大量采用了实际案例,实用性强:详细介绍

Hadoop大数据处理 电子书 PDF 下载 制作 定制 服务

作者简介 刘军,1994年至2003年,就读于北京邮电大学信息工程学院,获得博士学位.2003年至2007年,IBM中国研究院担任高级研究员及部门经理,研究方向为电信开放业务平台及IP融合网络管理.2007年至2012年,创办欢城(北京)科技有限公司,为中国网页游戏产业开创者之一,研发的产品曾多次获得互联网业界奖项.2012年至今,北邮任教,在宽带网络监控教研中心从事电信网络数据分析相关教学与研究工作. 本人背靠海量纸质图书,可以制作各种纸质书籍的电子化,有需要可以Q:1481449626Had