命令模式

abstract class Command {
    public abstract void execute();
}

class Invoker {
    private Command command;
    public Invoker(Command command) {
        this.command = command;
    }
    public void setCommand(Command command) {
        this.command = command;
    }
    public void call() {
        command.execute();
    }
}

class ConcreteCommand extends Command {
    private Receiver receiver;
    public void execute() {
        receiver.action();
    }
}

class Receiver {
    public void action() {
    }
}

迭代器模式:

interface Iterator {
    public void first();
    public void next();
    public boolean hasNext();
    public Object currentItem();
}

class ConcreteIterator implements Iterator {
    private ConcreteAggregate objects;
    private int cursor;
    public ConcreteIterator(ConcreteAggregate objects) {
        this.objects=objects;
    }
    public void first() {}
    public void next() {}
    public boolean hasNext() {}
    public Object currentItem() {}
}

interface Aggregate {
    Iterator createIterator();
}

class ConcreteAggregate implements Aggregate {
    public Iterator createIterator() {
        return new ConcreteIterator(this);
    }
}

书籍地址:http://gof.quanke.name/

最后修改日期:2017-09-11

作者

留言

作者

解释器模式,没看懂。?,三个没懂了。

枕边书 

你这高产似母猪啊。。
我也用go写了一遍设计模式:
http://www.cnblogs.com/zhenbianshu/p/7406572.html

    作者

    我靠,你这话说的。最近工作朝九晚六,晚上没事干,就只能看点书了。。。。

发表评论

此站点使用Akismet来减少垃圾评论。了解我们如何处理您的评论数据