- 浏览: 422911 次
- 性别:
- 来自: 上海
文章分类
- 全部博客 (170)
- java (77)
- javascript (5)
- jsp (1)
- servlet (6)
- struts (8)
- hibernate (3)
- spring (4)
- ajax (5)
- jquery (3)
- apache cxf (0)
- ext.js (1)
- hadoop (0)
- android (0)
- html5 (2)
- linux (5)
- flex (1)
- tomcat (1)
- jboss (0)
- nginx (0)
- mysql (16)
- sql server (3)
- oracle (4)
- div+css (0)
- mybatis (4)
- design patterns (22)
- xml (2)
- postgresql (3)
- velocity (1)
- freemarker (1)
- kendo-ui (2)
- ibatis (1)
- socket (1)
- C and C++ (1)
- C# (2)
- 程序设计----算法 (0)
- jersey (1)
- dd (0)
- perl (1)
- shell (0)
最新评论
-
书策稠浊:
兄弟,这tm是Java?
java调用百度地图和谷歌地图 -
fengyunlouyanyu:
jquery----删除指定id的div下的img -
yangjianzhouctgu:
Neoman 写道hi,我看你引入了kendo.web.min ...
kendo-ui中kendoGrid的用法 -
Neoman:
hi,我看你引入了kendo.web.min.js 这个js, ...
kendo-ui中kendoGrid的用法 -
yangjianzhouctgu:
llscp 写道这是JS吧...对的呀
java调用百度地图和谷歌地图
该设计模式是以公司的组织结构为背景的
Crop.java代码如下:
Leaf.java代码如下:
Branch.java代码如下:
Client.java代码如下:
运行结果如下:
Crop.java代码如下:
package com.designPattern.composite; public abstract class Corp { private String name =""; private String position = ""; private int salary = 0; public Corp(String name,String position,int salary){ this.name = name; this.position = position; this.salary = salary; } public String getInfo(){ String info = "姓名:"+this.name+"\t职位:"+this.position+"\t薪水:"+this.salary; return info; } }
Leaf.java代码如下:
package com.designPattern.composite; public class Leaf extends Corp{ public Leaf(String name, String position, int salary) { super(name, position, salary); } }
Branch.java代码如下:
package com.designPattern.composite; import java.util.ArrayList; public class Branch extends Corp{ ArrayList<Corp> subordinateList = new ArrayList<Corp>(); public Branch(String name, String position, int salary) { super(name, position, salary); } public void addSubordinate(Corp corp){ this.subordinateList.add(corp); } public ArrayList<Corp> getSubordinate(){ return this.subordinateList; } }
Client.java代码如下:
package com.designPattern.composite; import java.util.ArrayList; public class Client { public static void main(String[] args) { Branch ceo = compositeTree(); System.out.println(ceo.getInfo()); System.out.println(getTreeInfo(ceo)); } public static Branch compositeTree(){ Branch root = new Branch("老大","总经理",100000); Branch developDep = new Branch("老刘","研发部经理",10000); Branch salesDep = new Branch("老马","销售部经理",20000); Branch financeDep = new Branch("老赵","财务部经理",30000); Branch firstDevGroup = new Branch("杨组长","研发一组组长",8000); Branch secondDevGroup = new Branch("吴组长","研发二组组长",8000); Leaf a = new Leaf("a","开发人员",2000); Leaf b = new Leaf("b","开发人员",2000); Leaf c = new Leaf("c","开发人员",2000); Leaf d = new Leaf("d","开发人员",2000); Leaf e = new Leaf("e","开发人员",2000); Leaf f = new Leaf("f","开发人员",2000); Leaf g = new Leaf("g","开发人员",2000); Leaf h = new Leaf("h","开发人员",2000); Leaf i = new Leaf("i","开发人员",2000); Leaf k = new Leaf("k","销售人员",2000); Leaf l = new Leaf("l","销售人员",2000); Leaf j = new Leaf("j","财务人员",2000); Leaf m = new Leaf("m","财务人员",2000); Leaf n = new Leaf("n","CEO秘书",2000); Leaf p = new Leaf("陆副经理","研发部副经理",2000); firstDevGroup.addSubordinate(a); firstDevGroup.addSubordinate(b); firstDevGroup.addSubordinate(c); firstDevGroup.addSubordinate(d); secondDevGroup.addSubordinate(e); secondDevGroup.addSubordinate(f); secondDevGroup.addSubordinate(g); secondDevGroup.addSubordinate(h); secondDevGroup.addSubordinate(i); salesDep.addSubordinate(k); salesDep.addSubordinate(l); financeDep.addSubordinate(j); financeDep.addSubordinate(m); developDep.addSubordinate(firstDevGroup); developDep.addSubordinate(secondDevGroup); developDep.addSubordinate(p); root.addSubordinate(n); root.addSubordinate(salesDep); root.addSubordinate(financeDep); root.addSubordinate(developDep); return root; } public static String getTreeInfo(Branch root){ ArrayList<Corp> subordinateList = root.getSubordinate(); String info = ""; for(Corp c:subordinateList){ if(c instanceof Leaf){ info = info +c.getInfo()+"\n"; }else{ info = info +c.getInfo()+"\n"+getTreeInfo((Branch)c); } } return info; } }
运行结果如下:
姓名:老大 职位:总经理 薪水:100000 姓名:n 职位:CEO秘书 薪水:2000 姓名:老马 职位:销售部经理 薪水:20000 姓名:k 职位:销售人员 薪水:2000 姓名:l 职位:销售人员 薪水:2000 姓名:老赵 职位:财务部经理 薪水:30000 姓名:j 职位:财务人员 薪水:2000 姓名:m 职位:财务人员 薪水:2000 姓名:老刘 职位:研发部经理 薪水:10000 姓名:杨组长 职位:研发一组组长 薪水:8000 姓名:a 职位:开发人员 薪水:2000 姓名:b 职位:开发人员 薪水:2000 姓名:c 职位:开发人员 薪水:2000 姓名:d 职位:开发人员 薪水:2000 姓名:吴组长 职位:研发二组组长 薪水:8000 姓名:e 职位:开发人员 薪水:2000 姓名:f 职位:开发人员 薪水:2000 姓名:g 职位:开发人员 薪水:2000 姓名:h 职位:开发人员 薪水:2000 姓名:i 职位:开发人员 薪水:2000 姓名:陆副经理 职位:研发部副经理 薪水:2000
发表评论
-
设计模式----中介者模式(demiator pattern)
2013-07-21 22:55 897AbstractMediator.java代码如下: pa ... -
设计模式----原型模式(prototype pattern)
2013-07-21 22:51 607AdvTemplate.java代码如下: package ... -
设计模式----状态模式(state pattern)
2013-07-21 22:48 1161LiftState.java代码如下: package ... -
设计模式----访问者模式(visitor pattern)
2013-07-21 22:44 939IVisitor.java代码如下: package co ... -
设计模式----观察者模式(observer)
2013-07-20 19:53 1039这里采用两种方式实现观察者模式:第一种方式为完全自己写, ... -
设计模式----迭代器模式(Iterator)
2013-07-20 15:59 887IProject.java代码如下: package co ... -
设计模式----装饰者模式(decorator pattern)
2013-07-15 09:08 991SchoolReport.java代码如下: packag ... -
设计模式----命令模式(command pattern)
2013-07-15 09:09 924Group.java代码如下: pa ... -
设计模式----桥梁模式(bridge pattern)
2013-07-14 22:21 1147Product.java代码如下: package com ... -
设计模式----模板方法模式(template method pattern)
2013-07-14 17:00 1119HummerModel.java代码如下: packag ... -
设计模式----适配器模式(adapter)
2013-07-14 13:37 835IUserInfo.java代码如下: package c ... -
设计模式----门面模式(facade)
2013-07-14 13:30 915LetterProcess.java代码如下 ... -
设计模式----抽象工厂模式(abstract factory pattern)
2013-07-13 23:09 887Human.java代码如下: package com. ... -
设计模式----工厂方法模式(factory method pattern)
2013-07-10 22:19 1044给定一个工厂类,用这个工厂类造出一堆对象来,这些对象对应的类实 ... -
设计模式----多例模式(Multition)
2013-07-02 22:47 1009Emperor.java 代码如下: ... -
设计模式----单例模式(singleton)
2013-06-30 22:17 738单例就是唯一的意思。 第一种单例实现方式(在多线程环境中存在 ... -
设计模式----代理模式(proxy)
2013-06-30 22:02 929代理模式主要使用了java ... -
设计模式----策略模式(strategy)
2013-06-29 22:17 1043本文参考别人设计模式的一个例子。 关于诸葛亮的三个锦囊妙计的 ... -
装饰着模式(decorator)
2012-09-09 21:51 981一下代码就是运用了装饰者模式: package com.ba ... -
观察者模式(observer)
2012-09-09 19:36 908设计模式中观察者模式的实现有很多方式,这里列出两种实现方式 1 ...
相关推荐
c++设计模式-结构型模式-组合模式;qt工程;c++简单源码; 组合(Composite Pattern)模式的定义:有时又叫作整体-部分(Part-Whole)模式,它是一种将对象组合成树状的层次结构的模式,用来表示“整体-部分”的关系...
将对象组合成树形结构以表示“部分-整体”的层次结构。它使得客户对单个对象和复合对象的使用具有一致性。
2.2.3 组合模式 272.3 格式化 27 2.3.1 封装格式化算法 27 2.3.2 Compositor 和 Composition 27 2.3.3 策略模式 29 2.4 修饰用户界面 29 2.4.1 透明围栏 29 2.4.2 Monoglyph 30 2.4.3 Decorator 模式 32 2.5 支持...
JAVA设计模式-day2,请的行业大能讲得课程,涉及:创建模式(5种: 1、 工厂方法模式(Factory Method);... 11、 组合模式(Composite))、关系模式(11种),挺不错的,或许对某些专业技术人事有帮组,推荐给大家。
C++设计模式课件20_Composite_组合模式.pdf
设计模式C++学习之组合模式(Composite)
组合模式(Composite Pattern),又叫部分整体模式,是用于把一组相似的对象当作一个单一的对象。组合模式依据树形结构来组合对象,用来表示部分以及整体层次。这种类型的设计模式属于结构型模式,它创建了对象组的...
第15章 组合模式(Composite) 第16章 模板方法模式(Template Method) 第17章 策略模式(Strategy) 第18章 状态模式(State) 第19章 备忘录模式(Memento) 第20章 享元模式(Flyweight) 第21章 解释器模式...
第15章 组合模式(Composite) 第16章 模板方法模式(Template Method) 第17章 策略模式(Strategy) 第18章 状态模式(State) 第19章 备忘录模式(Memento) 第20章 享元模式(Flyweight) 第21章 解释器模式...
第15章 组合模式(Composite) 第16章 模板方法模式(Template Method) 第17章 策略模式(Strategy) 第18章 状态模式(State) 第19章 备忘录模式(Memento) 第20章 享元模式(Flyweight) 第21章 解释器模式...
- 组合模式(Composite) - 外观模式(Facade) - 享元模式(Flyweight) - 观察者模式(Observer) - 模板方法模式(Template Method) - 策略模式(Strategy) - 责任链模式(Chain of Responsibility) - 中介者模式...
C#面向对象设计模式纵横谈(9):Composite 组合模式(结构型模式) 体验课程
设计模式之Composite(组合) 设计模式之Decorator(油漆工) 设计模式之Bridge 设计模式之Flyweight(享元) 行为模式: 设计模式之Template 设计模式之Memento(备忘机制) 设计模式之Observer 设计模式之Chain of ...
组合模式(Composite Pattern),又叫部分整体模式,是用于把一组相似的对象当作一个单一的对象。组合模式依据树形结构来组合对象,用来表示部分以及整体层次。这种类型的设计模式属于结构型模式,它创建了对象组的...
23种设计模式 目录 创建型 1. Factory Method(工厂方法) 2. Abstract Factory(抽象工厂) 3. Builder(建造者) 4. Prototype(原型) 5. Singleton(单例) 结构型 6. Adapter Class/Object(适配器) ...
组合模式(Composite Pattern)-结构型模式 (0%) <br>讲义书写模式 在实际的讲解中我会用一套模式来讲述我对设计模式的理解 1.给出当前章节模式的名称 2.讲述一个小故事,提出问题 3.回答这个...
C#面向对象设计模式纵横谈(9):Composite 组合模式(结构型模式) (Level 300)
在这里与各位分享本人从网络上下载的C#面向对象设计模式纵横谈系列视频,共有25节,除了第一节需要各位贡献一点资源分以作为对本人上传资源的回馈,后面的其他资源均不需要... 这是第9节:结构型模式Composite组合模式
2.2.3 组合模式 27 2.3 格式化 27 2.3.1 封装格式化算法 27 2.3.2 compositor和composition 27 2.3.3 策略模式 29 2.4 修饰用户界面 29 2.4.1 透明围栏 29 2.4.2 monoglyph 30 2.4.3 decorator 模式 32 2.5...