标签:
今天,我们就来看一下嘴熟悉的笔记本电源适配器的样例。通常。笔记本电脑须要的电流都是12-20V以内的直流电流,而我们家庭用电一般是220V的交流电,当然还有工业用电380V交流电,还有更低的110V交流电源。
怎样把这些不同的交流电源转换成笔记本电脑须要的直流电呢?这就须要电源适配器。
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
namespace 适配器
{
//电源基类
public class BasePower
{
//电压值
private float power;
//单位
private string unit = "V";
//构造方法
public BasePower(float power)
{
this.power = power;
}
public float Power
{
get { return power; }
set { power = value; }
}
public string Unit
{
get { return unit; }
set { unit = value; }
}
}
//交流电源接口
public interface IPower
{
//输出交流电
void output();
}
//交流电源
public class Power : BasePower,IPower
{
//构造方法
public Power(float power) : base(power) { }
//电源输出
public void output()
{
Console.WriteLine("这是" + this.Power + this.Unit + "交流电源!");
}
}
//12V直流电源接口
public interface IPower12
{
void output12v();
}
//12V直流电源
public class Power12 : BasePower,IPower12
{
public Power12(float power) : base(power) { }
public void output12v()
{
Console.WriteLine("这是" + this.Power + this.Unit + "直流电源!
");
}
}
//电源适配器(实现目标对象接口。即12V电源接口)
public class AdapterPower12 :IPower12
{
//待转换的交流电源
private BasePower basePower;
//适配器构造方法,将待转换对象传入
public AdapterPower12 (BasePower basePower)
{
this.basePower = basePower;
}
//实现目标对象方法
public void output12v()
{
//获得外部电源值
float powerFloat = this.basePower.Power;
//进行电源转换
if (powerFloat == 380)
{
//380V电源转换
powerFloat = powerFloat / 31.67f;
}
else if (powerFloat == 220)
{
//220V电源转换
powerFloat = powerFloat / 18.33f;
}
else if(powerFloat==110)
{
//110V电源转换
powerFloat = powerFloat / 9.17f;
}
else
{
Console.WriteLine("不能适配电源!
");
return;
}
powerFloat = (int)(powerFloat * 10) / 10.0f;
Console.WriteLine("这是" + powerFloat + this.basePower.Unit + "直流电源!");
}
}
class Program
{
static void Main(string[] args)
{
//首先生成一个220V电源对象!
Power power220 = new Power(220);
power220.output();
//生成一个12V电源对象
IPower12 power12 = new Power12(12);
power12.output12v();
Console.WriteLine();
//使用电源适配器将220V电源转换成12V电源
Console.WriteLine("电源适配器转换中");
IPower12 adapterPower12 = new AdapterPower12(power220);
adapterPower12.output12v();
Console.WriteLine("电源适配器转换结束!
");
}
}
}
适配器的类图
3.想创建一个能够复用的类,该类能够与其它不想管的类或不可预见的类协同工作的时候
适配器主要用于系统的升级扩展。或者版本号兼容性上。没有哪一个系统分析师会在软件设计阶段使用适配器模式的。
适配器能够非常好的解决版本号兼容问题。
另外,就是原有类和新的接口标准不能区别太大,否则。适配器是达不到预期效果的。适配器在软件的后期维护中具有非常大的优势,它不仅能保持原有系统的稳定。并且还能进行新功能的扩展。
2.与装饰的差别:适配器主要用来填补两个接口之间的差异,而装饰则是不须要更改接口,就能够新增功能的设计模式。
版权声明:本文博主原创文章。博客,未经同意不得转载。
标签:
原文地址:http://www.cnblogs.com/mengfanrong/p/4848193.html