项目的优化以及层次的提升学习,通过一些简单的demo一起学习
using UnityEngine;
using System.Collections;using System.Collections.Generic;
using System;
abstract class Subject
{
protected List<People> observer = new List<People>();
public abstract void AddPeople(People p);
public abstract void RomovePeople(People p);
public abstract void PeopleHowtodo();
}
class OldLady : Subject
{
public override void AddPeople(People p)
{
observer.Add(p);
}
public override void PeopleHowtodo()
{
foreach (People p in observer)
{
p.DoSomething();
}
}
public override void RomovePeople(People p)
{
observer.Remove(p);
}
}
interface People
{
void DoSomething();
}
class Child : People
{
public void DoSomething()
{
Debug.Log(typeof(Child).ToString()+ " help the OldLady");
}
}
class Man : People
{
public void DoSomething()
{
Debug.Log(typeof(Man).ToString() + " don't help the OldLady");
}
}
class OldMan : People
{
public void DoSomething()
{
Debug.Log(typeof(OldMan).ToString() + " is thinking");
}
}
public class Test : MonoBehaviour
{
void Update()
{
if (Input.GetMouseButtonDown(1))
{
Subject oldlady = new OldLady();
People child = new Child();
People man = new Man();
People oldman = new OldMan();
oldlady.AddPeople(child);
oldlady.AddPeople(man);
oldlady.AddPeople(oldman);
oldlady.PeopleHowtodo();
}
}
}