The adapter design pattern  is used to bridge two incompatible interfaces. It involves a single class called adapter that is responsible for communication between two independent or incompatible interfaces. It makes two incompatible interfaces work together.
It includes four components.
- Target: It is an interface that is used by the client to achieve its request.
- Adapter: It is a class that implements the Target interface and inherits the Adaptee class. It provides communication between the Client and Adaptee.
- Adaptee: It is a class with the functionality required by the client. However, it does not support the client’s interface.
- Client: It is a class that interacts with a type that implements a Target interface.
The Adapter Design patterns are often implemented in two ways.
- Object Adapter Design
- Class Adapter Design

creating the Employee model and a simple object into an XML converter example:
// create Employee Model:
class Employee
    {
        public string Emp_Name { get; set; }
        public string Emp_Address { get; set; }
        public int Emp_Id { get; set; }
    }
// Employee details:
 class EmployeeDataProvider
  {
      public static List
        {
           new Employee{ Emp_Id=101,Emp_Name="Ajay",Emp_Address="Mohali"},
            new Employee{ Emp_Id=102,Emp_Name="Abhi",Emp_Address="Chd"},
            new Employee{ Emp_Id=103,Emp_Name="Sidh",Emp_Address="Mohali"},
            new Employee{ Emp_Id=104,Emp_Name="Rajesh",Emp_Address="Chd"},
            new Employee{ Emp_Id=105,Emp_Name="Ravi",Emp_Address="Mohali"}
            };
    }
// converter  Xml
public class XmlConverter
    {
        public XDocument GetXML()
        {
            var xDocument = new XDocument();
            var xElement = new XElement("Employee");
            var xAtributes = EmployeeDataProvider.GetData()
            .Select(c => new XElement("Employee",
            new XAttribute("Employee_Id",c.Emp_Id),
            new XAttribute("Employee_Name", c.Emp_Name),
            new XAttribute("Employee_Address",c.Emp_Address)));
            xElement.Add(xAtributes);
            xDocument.Add(xElement);
            Console.WriteLine(xDocument);
            return xDocument;
        }
}
Implement a JsonConverter class:
  class JsonConverter
    {
        private IEnumerable
        public JsonConverter(IEnumerable
        {
     	       _employees = employees;
        }
        public void ConvertToJson()
        {
var jsonemployee = JsonConvert.SerializeObject(_employees, Formatting.Indented);
           Console.WriteLine("\n Print Json List\n");
           Console.WriteLine(jsonemployee);
        }
    }
Create interface:
public interface IXmlToJson
 {
        void ConvertXmlToJson();
 }
XmlToJsonAdapter class that will implement the IXmlToJson interface:
public class XmlToJsonAdapter: IXmlToJson
 {
        private readonly XmlConverter  _xmlConverter;
        public XmlToJsonAdapter(XmlConverter xmlConverter)
        {
           	_xmlConverter = xmlConverter;
         }
        public void ConvertXmlToJson()
        {
            var employee = _xmlConverter.GetXML()
         			       .Element("Employee")
               		      .Elements("Employee")
                		      .Select(c => new Employee
                			{
                    				Emp_Id = Convert.ToInt32(c.Attribute("Employee_Id").Value),
                   				Emp_Name = c.Attribute("Employee_Name").Value,
                  				Emp_Address=c.Attribute("Employee_Address").Value
});
 new JsonConverter(employee).ConvertToJson();
}
      }
Main class:
class Program
    {
        static void Main(string[] args)
        {
          var xmlConverter = new XmlConverter();
        	          var adapter = new XmlToJsonAdapter(xmlConverter);
         	          adapter.ConvertXmlToJson();
        }
    }
If you have skills in PHP programming and you want to enhance your career in this field, a PHP certification from StudySection can help you reach your desired goals. Both beginner level and expert level PHP Certification Exams are offered by StudySection along with other programming certification exams.

 
			

