备忘录模式:主要作用是针对需要记录和保存历史的类
1.一个需要保存记录的类,
2.一个保存记录的容器。容器类保存需要记录类的属性
3.一个容器的管理者。容器的管理者中有容器类。
这个需要保存记录的类里面有保存和回复类,调用容器的管理者。
组合模式:组合模式主要用于大小不同但是功能一样,但是不可以聚合的类中,例如美国和英国的政府部门职责有基本一样,但是美国和英国又是2个不同的国家,所以 可以用组合模式。
1.一个是基类,所有组合对象的共有属性
2.一个是具体的个体类,继承基类
3.一个是存贮组合类的类,继承基类,他有一个存贮对象的容器。
一下代码来自《大话设计模式一书》
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
namespace ConsoleApplication2
{
abstract class Componet
{
public abstract void Dispaly(int depth);
public abstract void add(Componet s);
}
class L : Componet
{
public override void Dispaly(int depth)
{
String s = new String('-', depth);
Console.WriteLine(s);
}
public override void add(Componet s)
{
}
}
class Composite : Componet
{
private List<Componet>A=new List<Componet>();
public override void add(Componet s)
{
A.Add(s);
}
public override void Dispaly(int depth)
{
String s = new String('-', depth);
Console.WriteLine(s);
foreach(Componet c in A)
{
c.Dispaly(depth+2);
}
}
}
class Program
{
static void Main(string[] args)
{
Composite root=new Composite();
root.add(new L());
root.add(new L());
Composite K = new Composite();
K.add(new L());
K.add(new L());
root.add(K);
root.Dispaly(1);
Console.Read();
}
}
}