我写的设计模式的文章总结(6)

2019-03-22 17:12

{

Enumeration enumeration=observers_vector.elements(); while(enumeration.hasMoreElements()) {

((Observer)enumeration.nextElement()).update(); } } }

public class ConcreteSubject extends Subject {

private String state;

public void change(String newState) {

this.state=newState; this.notify_all(); } }

public class ConcreteObserver implements Observer {

public void update() {

System.out.println(\ } }

public class Client {

public static void main(String args[]) {

ConcreteSubject subject=new ConcreteSubject(); Observer observer=new ConcreteObserver(); subject.add_ob(observer);

subject.change(\} }

13,Visitor模式理解

---------------------------------------------------------------------------- public interface Visitor {

void visit(Node1 node);

void visit(Node2 node);

27

设计模式

}

---------------------------------------------------------------------------- public class Visitor1 implements Visitor {

public void visit(Node1 node1) {

node1.operation1(); }

public void visit(Node2 node2) {

node2.operation2(); } }

---------------------------------------------------------------------------- public class Visitor2 implements Visitor {

public void visit(Node1 node1) {

node1.operation1(); }

public void visit(Node2 node2) {

node2.operation2(); } }

----------------------------------------------------------------------------

public interface Node {

public void accept(Visitor visitor); }

---------------------------------------------------------------------------- public class Node1 impelments Node {

public void accept(Visitor visitor) {

visitor.visit(this); }

public void operation1() {

System.out.println(\

28

设计模式

} }

---------------------------------------------------------------------------- public class Node2 impelments Node {

public void accept(Visitor visitor) {

visitor.visit(this); }

public void operation2() {

System.out.println(\ } }

---------------------------------------------------------------------------- import java.util.*;

public class Structure {

private Vector node_list= new Vector();;

/**

* @link aggregation */

private Node node;

public Structure() { }

public void action(Visitor visitor) {

for(Enumeration e = node_list=.elements(); e.hasMoreElements();) {

node = (Node)e.nextElement(); node.accept(visitor); } }

public void add(Node node) {

29

设计模式

node_list.addElement(node); } }

---------------------------------------------------------------------------- public class Client {

private static Structure structure; private static Visitor visitor;

public static void main(String[] args) {

structure = new Structure();

structure.add(new Node1()); structure.add(new Node1());

visitor = new Visitor1(); structure.action(visitor);

} } 练习

1,用composite模式写一个二叉树的例子

package binarytree;

public abstract class Component { private String name;

public abstract Component addChild(Component leftChild,Component rightChild); //public abstract Component addLeftChild(Component leftChild); public String getName(){return name;} public void getTreeInfo(){}

public abstract int getLength(); }

/***********************************************/

package binarytree;

public class Tree extends Component { private String name;

30

设计模式

private Component leftChild; private Component rightChild;

public Tree(String name,Component leftChild,Component rightChild) { this.name=name;

this.leftChild=leftChild; this.rightChild=rightChild; }

public Tree(String name) { this.name=name; this.leftChild=null; this.rightChild=null; }

public Component addChild(Component leftChild,Component rightChild){ this.leftChild=leftChild; this.rightChild=rightChild; return this; }

public String getName(){ return name; }

public void getTreeInfo() {

System.out.println(\ if(this.leftChild instanceof Leaf) {

System.out.println(getName()+\\a Leaf\ }

if(this.leftChild instanceof Tree){

System.out.println(getName()+\\a Tree\

this.leftChild.getTreeInfo(); }

if(this.leftChild==null) {

System.out.println(getName()+\ }

if(this.rightChild instanceof Leaf) {

System.out.println(getName()+\is a Leaf\ }

if(this.rightChild instanceof Tree) {

System.out.println(getName()+\

31


我写的设计模式的文章总结(6).doc 将本文的Word文档下载到电脑 下载失败或者文档不完整,请联系客服人员解决!

下一篇:股权购买协议 中英文

相关阅读
本类排行
× 注册会员免费下载(下载后可以自由复制和排版)

马上注册会员

注:下载文档有可能“只有目录或者内容不全”等情况,请下载之前注意辨别,如果您已付费且无法下载或内容有问题,请联系我们协助你处理。
微信: QQ: