Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- public interface IPoolManager
- {
- T Create<T>(params object[] args);
- object Create(Type concreteType, params object[] args);
- T CreateComponent<T>(params object[] args) where T : Component;
- Component CreateComponent(Type componentType, params object[] args);
- }
- public interface IService
- {
- void Init();
- }
- public interface IServiceFactory
- {
- T CreateService<T>(BaseService model) where T : IService;
- }
- public abstract class BaseService : IService
- {
- public abstract void Init();
- }
- public class ServiceFactory : IServiceFactory
- {
- private readonly IPoolManager _poolManager;
- public ServiceFactory(IPoolManager poolManager)
- {
- _poolManager = poolManager;
- }
- public T CreateService<T>(BaseService model) where T : IService
- {
- var type = typeof(T);
- return (T)_poolManager.Create(type, model);
- }
- }
- public interface IServiceCommand
- {
- event EventHandler OnDone;
- void Run();
- }
- public class ServiceCommand : BaseService, IServiceCommand
- {
- public override void Init()
- {
- }
- public event EventHandler OnDone;
- public void Run()
- {
- }
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement