Progress on abstract base classes and interfaces

This commit is contained in:
Neil Dorin
2021-01-29 17:19:59 -07:00
parent 657b9f1f54
commit f0299729e6
4 changed files with 11 additions and 7 deletions

View File

@@ -64,17 +64,19 @@ namespace PepperDash.Essentials.Core
}
/// <summary>
/// Devices the basic needs for a Device Factory
/// Defines the basic needs for a Device Factory
/// </summary>
public abstract class EssentialsDeviceFactory<T> : IDeviceFactory where T:EssentialsDevice
{
#region IDeviceFactory Members
/// <summary>
/// A list of strings that can be used in the type property of a DeviceConfig object to build an instance of this device
/// </summary>
public List<string> TypeNames { get; protected set; }
#region IDeviceFactory Members
/// <summary>
/// Loads an item to the DeviceFactory.FactoryMethods dictionary for each entry in the TypeNames list
/// </summary>
@@ -90,6 +92,8 @@ namespace PepperDash.Essentials.Core
}
}
#endregion
/// <summary>
/// The method that will build the device
/// </summary>
@@ -97,11 +101,10 @@ namespace PepperDash.Essentials.Core
/// <returns>An instance of the device</returns>
public abstract EssentialsDevice BuildDevice(DeviceConfig dc);
#endregion
}
/// <summary>
/// Devices the basic needs for a Device Factory
/// Defines the basic needs for a Device Factory
/// </summary>
public abstract class EssentialsPluginDeviceFactory<T> : EssentialsDeviceFactory<T>, IPluginDeviceFactory where T : EssentialsDevice
{

View File

@@ -16,7 +16,7 @@ namespace PepperDash.Essentials.Core
public interface IDeviceFactory
{
/// <summary>
/// Loads all the types to the DeviceFactory
/// Loads all the types to the Factory
/// </summary>
void LoadTypeFactories();
}

View File

@@ -30,7 +30,6 @@ namespace PepperDash.Essentials.Core.Room.Components
/// </summary>
public interface IComponentFactory : IDeviceFactory
{
}
public static class ComponentFactory

View File

@@ -4,6 +4,8 @@ using System.Linq;
using System.Text;
using Crestron.SimplSharp;
using PepperDash.Core;
using PepperDash.Essentials.Core.Config;
using PepperDash.Essentials.Core.Interfaces.Components;
namespace PepperDash.Essentials.Core.Room.Components
@@ -11,6 +13,7 @@ namespace PepperDash.Essentials.Core.Room.Components
/// <summary>
/// The base class from which Room Components should be derived
/// </summary>
[Description("The base Essentials Device Class")]
public abstract class RoomComponentBase : IRoomComponent
{
private string _componentKey;
@@ -108,5 +111,4 @@ namespace PepperDash.Essentials.Core.Room.Components
}
}
}