Reputation: 836
Im just curious to know as this code has a code complexity of 16, if I want to hit the perfect 9/10 on CC, what would be the best approach? I know its not going to kill me but I am keen to learn if other people would write this code differently
class SentMessages
{
public SentMessages() { }
public SentMessages(int id, string userName, string message, string messageType, DateTime createdAt)
{
this.Id = id;
this.UserName = userName;
this.Message = message;
this.CreatedAt = createdAt;
this.MessageType = messageType;
}
public string UserName { get; set; }
public int Id { get; set; }
public string Message { get; set; }
public string MessageType { get; set; }
public DateTime CreatedAt { get; set; }
public List<SentMessages> GetMessages()
{
if (AllMessages.Count == 0) AllMessages = SentMessages.InitializeMessages();
return AllMessages;
}
public List<SentMessages> AllMessages = new List<SentMessages>();
static private List<SentMessages> InitializeMessages()
{
List<SentMessages> messages = new List<SentMessages>();
return messages;
}
public void ClearMessages()
{
AllMessages.Clear();
}
}
I've gained the concept for this code from http://objectlistview.sourceforge.net/cs and a stackoverlfow answer
Upvotes: 0
Views: 99
Reputation: 2406
public class SentMessage : Message, IMessage
{
public SentMessage(int id, string userName, string message, string messageType, DateTime createdAt)
{
Id = id;
UserName = userName;
Message = message;
CreatedAt = createdAt;
MessageType = messageType;
}
public string UserName { get; private set; }
public int Id { get; private set; }
public string Message { get; private set; }
public string MessageType { get; private set; }
public DateTime CreatedAt { get; private set; }
}
public class MessageCollection<T> where T : IMessage
{
private List<T> _messages;
public MessageCollection()
{
_messages = new List<T>();
}
public IEnumerable<T> GetMessages()
{
return _messages;
}
public void AddMessage(T message)
{
_messages.Add(message);
}
public void ClearMessages()
{
_messages.Clear();
}
}
Upvotes: 1
Reputation: 5831
I think you should consider the principle
Just some thoughts:
Message
' class as a dataholder to keep the Id
, Username
propertiesSentMessages
class that implements something like IList<SentMessage>
Oh, and GetMessages
makes no sense. It is invoked when the list is empty. However, it will create a new empty list.
Upvotes: 2