I am quite touched by the design model of terrylee. I will take the following notes for future reference.
Code
// --------------------------------------------------------
// Sometimes some previousCodeCannot be modified,
// But it must be used in new projects.
// However, the interface terms in the new project are different.
// How can the code in the old project adapt to the Code in the new project?
// You can use adapter Patten.
// --------------------------------------------------------
# Region Code that cannot be modified, but must be used
Public Interface Ireader
{
Void Read ()
{}
}
Public Class Txtreader: ireader
{
# Region Ireader members
Public Void Read ()
{
Throw New Notimplementedexception ();
}
# Endregion
}
Public Class Xmlreader: ireader
{
# Region Ireader members
Public Void Read ()
{
Throw New Notimplementedexception ();
}
# Endregion
}
# Endregion
# Region Required new interface
Public Interface Igetwayreader
{
Void Getwayreader ();
}
# Endregion
# Region Class Adaptation Mode
Public Class Getwaytxtreader: ireader, igetwayreader
{
# Region Ireader members
Public Void Read ()
{
Throw New Notimplementedexception ();
}
# Endregion
# Region Igetwayreader members
Public Void Getwayreader ()
{
Read ();
}
# Endregion
}
# Endregion
# Region Object Adaptation Mode
Public Class Getwayreader: igetwayreader
{
Ireader reader;
Public Getwayreader (ireader reader)
{
Reader = Reader;
}
# Region Igetwayreader members
Public Void Getwayreader ()
{
Reader. Read ();
}
# Endregion
}
# Endregion