Unity3D-单例模式、观察者模式和工厂模式
2017-10-30 21:33
253 查看
单例模式:
观察者模式:
工厂模式:
public class Singleton<T> where T : class,new() { private static T _instance; public static T Instance { get { if(_instance == null) { _instance = new T(); } return _instance; } } }
观察者模式:
using System.Collection abstract class Subject { //定义一个观察者集合用于存储所有观察者对象 protected ArrayList observers = new ArrayList(); //声明抽象注册方法,用于向观察者集合中增加一个观察者 public abstract void Attach(Observer observer); //声明抽象注销方法,用于在观察者集合中删除一个观察者 public abstract void Detach(Observer observer); //声明抽象通知方法 public abstract void Notify(); } 典型的具体目标类代码: class ConcreteSubject : Subject { public override void Attach(Observer observer) { observers.Add(observer); } public override void Detach(Observer observer) { observers.Remove(observer); } //实现通知方法 public override void Notify() { //遍历观察者集合,调用每一个观察者的响应方法 foreach (object obs in observers) { ((Observer)obs).Update(); } } } 典型的抽象观察者代码: interface Observer { void Update(); } 典型的具体观察者代码: class ConcreteObserver : Observer { //实现响应方法 public void Update() { //具体更新代码 } }
工厂模式:
abstract class Product { //所有产品类的公共业务方法 public void MethodSame() { //公共方法的实现 } //声明抽象业务方法 public abstract void MethodDiff(); } //典型的具体产品类代码: class ConcreteProductA : Product { //实现业务方法 public override void MethodDiff() { //业务方法的实现 } } //典型的具体产品类代码: class ConcreteProductB : Product { //实现业务方法 public override void MethodDiff() { //业务方法的实现 } } class Factory { //静态工厂方法 public static Product GetProduct(string arg) { Product product = null; if (arg.Equals("A")) { product = new ConcreteProductA(); //初始化设置product } else if (arg.Equals("B")) { product = new ConcreteProductB(); //初始化设置product } return product; } }
//典型的客户端代码: class Program { static void Main(string[] args) { Product product; product = Factory.GetProduct("A"); //通过工厂类创建产品对象 product.MethodSame(); product.MethodDiff(); } }
相关文章推荐
- Unity3D 从入门到放弃 ——巡逻兵 观察者模式
- c#winform:开发多语言应用程序---多国语言本地化与设计模式的思考----观察者模式+工厂模式!
- Android中使用软件设计模式之观察者模式、Builder模式、单例模式、简单工厂模式
- 设计模式--简单工厂模式在unity3d里面的使用
- ios开发中的基本设计模式(代理,观察者,MVC,单例,策略,工厂,MVVM,原型,Target-Action,通知(notification)机制)
- 设计模式——工厂(Unity3D中的应用)
- 部分设计模式(工厂+单例+适配器+装饰+代理+观察者)
- php设计模式--单例,工厂,观察者,策略模式
- 安卓设计模式,工厂模式/单例模式/观察者模式/代理模式/
- Unity3d之设计模式(三)观察者模式
- 在Unity3d中实现观察者模式
- 【设计模式】工场模式 || 抽象工厂 || 观察者模式 || 代理模式
- Unity3d与设计模式(三)工厂模式
- 观察者模式 和 工厂模式
- [转载野猪的一篇文章] 设计模式--简单工厂模式在unity3d里面的使用
- 设计模式(一) 观察者模式、装饰模式、工厂模式
- JAVA设计模式(二)工厂模式与观察者模式
- 浅谈观察者、工厂、简单工厂设计模式
- Unity3D_简单工厂设计模式
- 常用设计模式举例,观察者模式,装饰模式,工厂模式,单列模式---Head Frist 设计模式源码