组合模式—商品类别树的构建

编程入门 行业动态 更新时间:2024-10-28 01:23:39

<a href=https://www.elefans.com/category/jswz/34/1769978.html style=组合模式—商品类别树的构建"/>

组合模式—商品类别树的构建

组合模式:将对象组合成树形结构以表示‘部分-整体’的层次结构。组合模式使得用户对单个对象和组合对象的使用具有统一性。

通俗讲就拿一棵树来说,从树根向上生长,可以将树的结点分为两种,一种是叶子结点,叶子节点下面不可再分,另一种是树杈或者树枝,这种结点可以再往下分为叶子结点。这两种结点的性质不同,也就是属性不一样,在进行操作时也会不一样,而组合模式是将操作对这两种不同的结点具有一致性。这只一个不恰当的比喻。

书中的分公司和部门之间的关系更加形象。

下面写另外一个例子:

用组合模式重新实现商品类别树的构建(代

码+UML类图)

+服装

+男装

-衬衣

-夹克

+女装

-裙子

-套装

 

package 构建商品类别树;public abstract class Component {protected String name;public Component(String name) {super();this.name = name;}public abstract void Add(Component c);public abstract void Remove(Component c);public abstract void Display(String preStr);}package 构建商品类别树;public class Leaf extends Component {public Leaf(String name) {super(name);// TODO Auto-generated constructor stub}@Overridepublic void Add(Component c) {System.out.println("Cannot add to a leaf");// TODO Auto-generated method stub}@Overridepublic void Remove(Component c) {System.out.println("Cannot remove from a leaf");// TODO Auto-generated method stub}@Overridepublic void Display(String preStr) {System.out.println(preStr+"-"+name);// TODO Auto-generated method stub}}package 构建商品类别树;import java.util.ArrayList;
import java.util.Collection;public class Composite extends Component {//private List<Component> children=new List<Component>();private Collection<Component> children=new ArrayList<Component>();public Composite(String name) {super(name);// TODO Auto-generated constructor stub}@Overridepublic void Add(Component c) {children.add(c);// TODO Auto-generated method stub}@Overridepublic void Remove(Component c) {// TODO Auto-generated method stub}@Overridepublic void Display(String preStr) {System.out.println(preStr+"+"+this.name);preStr+="";for(Component component:children) {component.Display(preStr);}// TODO Auto-generated method stub}}package 构建商品类别树;public class Client {public static void main(String[] args) {Composite root=new Composite("服装");Composite c1=new Composite("男装");Composite c2=new Composite("女装");Leaf leaf1=new Leaf("衬衣");Leaf leaf2=new Leaf("夹克");Leaf leaf3=new Leaf("裙子");Leaf leaf4=new Leaf("套装");root.Add(c1);root.Add(c2);c1.Add(leaf1);c1.Add(leaf2);c2.Add(leaf3);c2.Add(leaf4);root.Display(" ");// TODO Auto-generated method stub}}

 

更多推荐

组合模式—商品类别树的构建

本文发布于:2023-07-28 16:23:21,感谢您对本站的认可!
本文链接:https://www.elefans.com/category/jswz/34/1248830.html
版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系,我们将在24小时内删除。
本文标签:组合   类别   模式   商品

发布评论

评论列表 (有 0 条评论)
草根站长

>www.elefans.com

编程频道|电子爱好者 - 技术资讯及电子产品介绍!