Skip to main content

Adapter design pattern

Run the following code in Linqpad:

void Main()
{
	IBowler bowler = new Bowler();
	IBatter allRounder = new AllRounderAdapter(bowler);
	allRounder.Bat();
}

// IBowler and IBatter are incompatible interfaces
internal interface IBowler
{
	void Bowl();
}

internal interface IBatter
{
	void Bat();
}

// Adapter
internal class AllRounderAdapter : IBatter
{
	private IBowler bowler;

	public AllRounderAdapter(IBowler bowler)
	{
		this.bowler = bowler;
	}

	public void Bat()
	{
		Console.WriteLine("Batting...");
	}
}

// Adaptee
internal class Bowler : IBowler
{
	public void Bowl()
	{
		Console.WriteLine("Bowling...");
	}
}
Output:
Batting...

Comments

Popular posts from this blog

How to install/upgrade/downgrade kubectl in Linux (Ubuntu)?

To install the latest version: curl -LO "https://dl.k8s.io/release/$(curl -L -s https://dl.k8s.io/release/stable.txt)/bin/linux/amd64/kubectl" curl -LO "https://dl.k8s.io/$(curl -L -s https://dl.k8s.io/release/stable.txt)/bin/linux/amd64/kubectl.sha256" echo "$(<kubectl.sha256) kubectl" | sha256sum --check sudo install -o root -g root -m 0755 kubectl /usr/local/bin/kubectl kubectl version --client kubectl version To install a specific (v1.19.0) version: curl -LO "https://dl.k8s.io/release/v1.19.0/bin/linux/amd64/kubectl" curl -LO "https://dl.k8s.io/v1.19.0/bin/linux/amd64/kubectl.sha256" echo "$(<kubectl.sha256) kubectl" | sha256sum --check sudo install -o root -g root -m 0755 kubectl /usr/local/bin/kubectl kubectl version --client kubectl version This will install kubectl client. Run minikube start to install kubectl server.

AWS Route53 - Private Hosted Zone

High availability (Multi-AZ) for Amazon RDS

There is something called failover technology in Amazon. AWS RDS's Multi-AZ deployment uses this technology. If you enable Multi-AZ for an RDS DB, say MySQL DB, RDS automatically creates a standby replica in a different AZ. If the primary DB instance is in AZ-1A, then RDS creates a standby replica in AZ-1B (for example). Suppose I add a new row to a table in the primary DB, then the same row is added, almost in the same time, in the standby replica. This is called as synchronous replication . Thus, standby replicas are useful during DB instance failure/ AZ disruption . How? Because, there is no need to create a backup later because the backup has already been created. This gives high availability during planned system maintenance. Normal backup  operation - I/O activities are blocked in the primary database  Automated backup operation (standby replica) - I/O activities are not blocked This standby replica is not similar to read replica (which is used for disaster recovery). S...