23种设计模式之组合模式代码实例

组合模式又叫部分整体模式,在处理类似树形结构的问题时常用。

    public class TreeNode {  

        private String name;
        private TreeNode parent;
        private Vector<TreeNode> children = new Vector<TreeNode>();  

        public TreeNode(String name){
            this.name = name;
        }  

        public String getName() {
            return name;
        }  

        public void setName(String name) {
            this.name = name;
        }  

        public TreeNode getParent() {
            return parent;
        }  

        public void setParent(TreeNode parent) {
            this.parent = parent;
        }  

        //添加孩子节点
        public void add(TreeNode node){
            children.add(node);
        }  

        //删除孩子节点
        public void remove(TreeNode node){
            children.remove(node);
        }  

        //取得孩子节点
        public Enumeration<TreeNode> getChildren(){
            return children.elements();
        }
    }  
    public class Tree {  

        TreeNode root = null;  

        public Tree(String name) {
            root = new TreeNode(name);
        }  

        public static void main(String[] args) {
            Tree tree = new Tree("A");
            TreeNode nodeB = new TreeNode("B");
            TreeNode nodeC = new TreeNode("C");  

            nodeB.add(nodeC);
            tree.root.add(nodeB);
            System.out.println("build the tree finished!");
        }
    }  
时间: 2024-10-29 09:16:09

23种设计模式之组合模式代码实例的相关文章

23种设计模式之建造者模式代码实例

建造者模式在实际工作中常常是在测试类造数据的时候使用,继承既定的Builder类之后, 新的Builder类可以方便的"建造"各种属性.具体见如下代码. 先有默认的既定Builder类: public interface Builder { public void buildPartA(); public void buildPartB(); public void buildPartC(); } 然后有这个Builder类需要建造的产品类: public class Product

23种设计模式之桥接模式代码实例

桥接模式就是把事物与其具体的实现相分离,抽象化与实现化解耦. public interface Sourceable { public void method(); } public class SourceSub1 implements Sourceable { @Override public void method() { System.out.println("this is the first sub!"); } } public class SourceSub2 imple

【Unity3D与23种设计模式】组合模式(Composite)

前段时间在忙一个新项目 博客好久没有更新了 GoF中定义: "将对象以树状结构组合,用以表现部分-全体的层次关系.组合模式让客户端在操作各个对象或组合时是一致的." 是一致的意思就是:能够对根节点调用的操作,同样能够在叶节点上使用 "分层式管理结构"一般也称为"树状结构" Unity中对于游戏对象的管理,也应用了树形结构的概念 让游戏对象之间可以被当成子对象或设置为父对象的方式来连接两个对象 public abstract class IComp

Java经典23种设计模式之创造型模式(二)

本文记录5种创造型模式的剩下两种:建造者模式(Builder).原型模式(PROTOTYPE). 一.建造者模式(别名:生成者模式) 将复杂对象的构建和它的表示分离,使得同样的构建过程可以创建不同的表示.一个完整的建造者模式包含以下几个概念: 1.产品类 Product public class Person { private String head; private String body; private String foot; public String getHead() { ret

JAVA开发的23种设计模式之 --- 桥接模式

桥接模式 概述:将抽象部分与他的实现部分分离,这样抽象化与实现化解耦,使他们可以独立的变化.如何实现解耦的呢,就是通过提供抽象化和实现化之间的桥接结构.    应用场景        实现系统可能有多个角度分类,每一种角度都可能变化.    解释:桥接模式将继承模式转化成关联关系,他降低了类与类之间的耦合度,减少了系统中类的数量,也减少了代码量.    理解抽象化,实现化,解耦        抽象化:将复杂物体的一个或几个共同的特性抽出去而只注意其他特性的行动或过程.在java面向对象中抽象化就

Java经典23种设计模式之创造型模式(一)

设计模式被称为程序猿的内功,之前零零散散的看过一大部分,但自己么有总结过.故此次在这里总结下.值得一提的是,设计模式并不是Java所特有.由于一直搞Android.这里就用Java为载体.最经典的设计模式有23种,分三个大类型: 创建型模式(5) .结构型模式(7).行为型模式(11),5 + 7 +11 = 23.网上一搜也都是一大把了,这里不过个人作的记录.本文记录创造型模式里的工厂方法(Factory Method).抽象工厂(Abstract Factory).单例模式这三种.力求透彻.

23种设计模式之原型模式(Prototype)

在系统开发过程中,有时候有些对象需要被频繁创建,原型模式通过给出一个原型对象来指明所要创建的对象的类型,然后通过复制这个原型对象的办法,创建出更多同类型的对象.原型模式是一种对象创建型模式,用原型实例制定创建对象的种类,并且通过复制这些原型创建新的对象.原型模式又可分为两种:浅克隆和深克隆.浅克隆仅仅复制所考虑的对象,而不复制它所引用的对象,也就是其中的成员对象并不复制:深克隆除了对象本身被复制外,对象包含的引用也被复制,即成员对象也被复制. 优点: 1)可以在运行时添加或删除产品. 2)通过改

23种设计模式(19)---Command模式

命令(Command)模式属于对象的行为模式[GOF95].命令模式又称为行动(Action)模式或交易(Transaction)模式.命令模式把一个请求或者操作封装到一个对象中.命令模式允许系统使用不同的请求把客户端参数化,对请求排队或者记录请求日志,可以提供命令的撤销和恢复功能. 命令模式是对命令的封装.命令模式把发出命令的责任和执行命令的责任分割开,委派给不同的对象. 每一个命令都是一个操作:请求的一方发出请求要求执行一个操作:接收的一方收到请求,并执行操作.命令模式允许请求的一方和接收的

23种设计模式-----创建型模式、结构型模式

一.创建型模式(都是用来帮助创建对象的) 1.单例模式 作用:保证一个类只有一个实例,并且提供一个访问该实例的全局访问点 应用:Windows的任务管理器.回收站:项目中读取配置文件的类:网站的计数器:应用程序的日志应用:数据库连接池:操作系统的文件系统:Application:Spring中的bean:Servlet:spring MVC框架/struts1框架中的控制器对象 选用:占用资源小.不需要延时加载--------枚举-->饿汉           占用资源大 .需要延时    --