设计模式分析

聚合,层次设计模式:适用于层次关系
例子:
public class Fee
{
    
private float valuee = 0;
    
    
public string GetName()
    {
        
//返回费用的名称
    }
    
    
public bool HasChildren()
    {
        
//该费用类型是否有子类型
    }
    
    
public Fee[] GetChildren()
    {
        
//返回该费用类型的子类型
    }
    
    
public float GetValue()
    {
        
//返回费用的金额
        if (HasChildren())
        {
            
float f = 0;
            Fee[] children 
= GetChildren();
            
for (int i = 0; i < children.Length; i ++)
            {
                f 
+= children[i].GetValue();
            }
            
return f;
        }
        
else
        {
            
return valuee;
        }
    }
}

组合模式可以很精确的反映销售网点间的聚合关系,并且对查询和统计提供了非常一致的接口,调用者不必区分具体的网点类型。类似这样的情况,当我们发现需求中一些对象具有聚合关系,并且我们希望对他们做一些共同的事情,就可以采用组合模式。


转载于:https://www.cnblogs.com/yanglin/archive/2007/10/24/935625.html

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/497014.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

买家和卖家也可以这样对话

买家&#xff1a;请问欧版和行货为什么要分开卖&#xff1f; 卖家&#xff1a;因为粘在一起不方便使用 买家&#xff1a;。。。。。。。。 买家&#xff1a;老板&#xff0c;你说欧版质量好&#xff0c;还是行货质量好&#xff1f; 卖家&#xff1a;也许是欧版的吧&#xff01;…

Java Web开发技术详解~Web的概念

Web 是一种分布式应用架构&#xff0c;旨在共享分布在网络上的各个Web服务器中的所有互相链接的信息。 Web 采用客户/服务器通信模式&#xff0c;客户与服务器之间用HTTP协议通信。 Web 使用超级文本技术&#xff08;HTML&#xff09;来链接网络上的信息。信息存放在服务器端&a…

dos命令、find、findstr、ping、nbtstat、netstat、net、at、ftp、telnet、tasklist、taskkill、netsh

DOS 在线手册&#xff1a;http://www.shouce.ren/api/dos/ DOS 命令学习手册 ( DOS W3School 教程 )&#xff1a;https://www.w3cschool.cn/dosmlxxsc1/ cmd命令&#xff1a; &#xff1a;http://wenku.baidu.com/view/5ecce91452d380eb62946da8.html&#xff1a;http://wenku…

重磅!中国科学家最新医学AI成果荣登《细胞》杂志

作者&#xff1a;李雨晨概要&#xff1a;在今天出版的最新一期《细胞》上&#xff0c;华人学者张康教授的研究荣登杂志封面。他们带来的&#xff0c;是一款能精确诊断多种疾病的人工智能工具。医学人工智能领域又有大新闻。在今天出版的最新一期《细胞》上&#xff0c;华人学者…

1030 Travel Plan(甲级)

1030 Travel Plan (30分) A traveler’s map gives the distances between cities along the highways, together with the cost of each highway. Now you are supposed to write a program to help a traveler to decide the shortest path between his/her starting city an…

perl里面隐式的继承

perl里面隐式的继承隐式的继承今天看见某断代码: A.pmCODE:[Copy to clipboard]Package A;...sub test{print "test\n";}B.pmCODE:[Copy to clipboard]Package B;use A;B->test();觉得比较奇怪,B并未显式从A继承,何以能使用A的test函数最后发现A.pm里面重写了impo…

2017全球教育机器人行业研究报告(附PDF下载)

来源&#xff1a; 起点财经 概要&#xff1a;伴随着全球化市场激烈竞争及高科技日新月异的发展&#xff0c;美、日、韩、欧、中等国家逐渐将智能机器人作为战略新兴产业发展不可缺少的创新技术支撑。伴随着全球化市场激烈竞争及高科技日新月异的发展&#xff0c;美、日、韩、…

Python编程从入门到实践~操作列表~创建数值列表

使用函数range() 使用range() 创建数字列表 对数字列表进行统计 列表解析

从零开始——PowerShell应用入门(全例子入门讲解)

From&#xff1a;https://www.cnblogs.com/lavender000/p/6935589.html PowerShell 在线教程&#xff1a;https://www.pstips.net/powershell-online-tutorials 微软 PowerShell 官方文档&#xff1a;https://docs.microsoft.com/zh-cn/powershell/ 学习一门技术&#xff0c;…

网站运作的几个阶段

作者&#xff1a;徐湘涛 看不见&#xff0d;&#xff0d;是因为你的网站还小&#xff0c;小到你的客户与业内人士都不知道&#xff0c;看不见你的存在&#xff0c;这个时候&#xff0c;是你最开始的时期&#xff0c;也是最为艰难的时刻&#xff0c;你要做的就是想办法提升品牌…

时空大数据赋能智慧城市的思考和实践

来源&#xff1a; 超图集团时空大数据和新型智慧城市是当下地信产业的两大热词&#xff0c;这两者的奇妙关联将擦出怎样精彩的火花&#xff1f;时空大数据如何赋能城市智能与城市智慧&#xff0c;让智慧城市建设迈上新的高度&#xff1f;2月6日至7日&#xff0c;由中国地理信息…

linux 命令:nc、netcat、ncat、socat

参考 &#xff1a;http://www.linuxso.com/command/nc.html NC工具的使用说明教程&#xff1a;https://blog.csdn.net/xysoul/article/details/52270149 window 版本 nc 下载&#xff1a;https://eternallybored.org/misc/netcat/ 1、nc、ncat 简介 NC 全名 Netcat (网络刀)&…

Python编程从入门到实践~操作列表

列表是什么 #列表是什么 bicycles ["trek", "cannodale", "redline","specialized"] print(bicycles)#访问列表元素 print(bicycles[0])#使用列表中的各个值 message f"My first bicycle was a {bicycles[0].title()}" p…

关于GPS 车辆定位导航中的投影变换

GPS 采用 WGS-84 椭球地理坐标, 用经、纬度和大地系来表示3 维空间信息。因此,GPS 车辆定位导航监控中心接收到的只是经、纬度信息, 必须通过高斯投影将其转换成高斯坐标。转换公式如下:转载于:https://www.cnblogs.com/kaixin110/archive/2007/12/11/990851.html

Linux下查看系统版本号信息的方法

From&#xff1a;https://linux.cn/article-9586-1.html 如果你加入了一家新公司&#xff0c;要为开发团队安装所需的软件并重启服务&#xff0c;这个时候首先要弄清楚它们运行在什么发行版以及哪个版本的系统上&#xff0c;你才能正确完成后续的工作。作为系统管理员&#xff…

Python编程从入门到实践~if语句

#检查是否相等 cars ["bmw", "audi", "toyota", "subaru"] for car in cars:if car bmw:print(car.upper())else:print(car.title())#忽略大小写是否相等 car "Audi" if (car.lower() "audi"):print(True)#检…

人工智能的恶意用途:预测、预防和缓解

来源&#xff1a; 新浪科技编译一份由26名专家联合撰写的报告&#xff0c;对人工智能技术的潜在威胁发出警告。他们认为&#xff0c;这项技术可能在未来5到10年催生新型网络犯罪、实体攻击和政治颠覆。这份100页的报告标题为《人工智能的恶意用途&#xff1a;预测、预防和缓解》…

CSS使用总结

在分配ID和类名时&#xff0c;尽可能保持与表现形式无关&#xff0c;例如contleft有可能以后希望出现在右边。 尽量少使用类,因为可以层叠识别,如: .News h3而不必在h3上加类<div class”News”> <h3></h3> <h2></h2> <p></p> <…

Linux下history命令详解---转载

Linux下History命令主要用于显示历史指令记录内容, 下达历史纪录中的指令 。 >History命令语法&#xff1a; [www.linuxidc.comlinux]# history [n] [www.linuxidc.comlinux]# history [-c] [www.linuxidc.comlinux]# history [-raw] histfiles 参数&#xff1a; n &#x…

linq 关联查询

可得会在以后的实体类中能用到usingSystem;usingSystem.Collections;usingSystem.Configuration;usingSystem.Data;usingSystem.Linq;usingSystem.Web;usingSystem.Web.Security;usingSystem.Web.UI;usingSystem.Web.UI.HtmlControls;usingSystem.Web.UI.WebControls;usingSyst…