Skip to content

Instantly share code, notes, and snippets.

@nbxx
nbxx / ConstructorInjection.cs
Created January 23, 2016 00:47
YouCanHackIt.ArchitectureDesign.DI.Samples.ConstructorInjection
namespace YouCanHackIt.ArchitectureDesign.DI.Samples
{
public class ConstructorInjection
{
public void Run()
{
ICalculator calculator1 = new DefaultTaxCalculator();
ICalculator calculator2 = new FoodTaxCalculator();
ICalculator calculator3 = new BookTaxCalculator();
@nbxx
nbxx / SetterInjection.cs
Last active January 23, 2016 00:48
YouCanHackIt.ArchitectureDesign.DI.Samples.SetterInjection
namespace YouCanHackIt.ArchitectureDesign.DI.Samples
{
public class SetterInjection
{
public void Run()
{
ICalculator calculator1 = new DefaultTaxCalculator();
ICalculator calculator2 = new FoodTaxCalculator();
ICalculator calculator3 = new BookTaxCalculator();
@nbxx
nbxx / SecondSolution.cs
Last active January 28, 2016 20:27
YouCanHackIt.ArchitectureDesign.DI.SecondSolution
namespace YouCanHackIt.ArchitectureDesign.DI.SecondSolution
{
using System;
using System.Collections.Generic;
using System.Linq;
public class Implementation
{
public void BuyProducts()
{
@nbxx
nbxx / FirstSolution.cs
Last active January 28, 2016 20:28
YouCanHackIt.ArchitectureDesign.DI.FirstSolution
namespace YouCanHackIt.ArchitectureDesign.DI.FirstSolution
{
using System;
public class Implementation
{
public void BuyProducts()
{
var importedCD = new Product("imported CD", 10.99m, false, true);
var perfume = new Product("perfume", 19.99m, false, false);