Skip to content

Instantly share code, notes, and snippets.

@kevinobee
Created October 19, 2012 10:20
Show Gist options
  • Star 0 You must be signed in to star a gist
  • Fork 0 You must be signed in to fork a gist
  • Save kevinobee/3917354 to your computer and use it in GitHub Desktop.
Save kevinobee/3917354 to your computer and use it in GitHub Desktop.
using System;
namespace @abstract // learnt something here, how to handle a reserved word as a namespace, obviously a similar thing
{
class Program
{
static void Main(string[] args)
{
var session = new Session();
var builder = new DetailsViewModelBuilder();
DisplayDetailsView(builder.AssembleFrom(session));
}
static void DisplayDetailsView(DetailsViewModel vm)
{
Console.WriteLine(vm.Data);
}
}
internal abstract class ViewModelBuilder<T>
{
public abstract T AssembleFrom(Session session);
}
class DetailsViewModelBuilder : ViewModelBuilder<DetailsViewModel>
{
// pass in any dependencies required to assemble view model via ctor
public override DetailsViewModel AssembleFrom(Session session)
{
throw new NotImplementedException();
}
}
// Model
internal class Session
{
public Guid Id { get; set; }
}
// View Model
internal class DetailsViewModel
{
public bool Data { get; set; }
}
}
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment