当前位置: 首页 > news >正文

贵州省建设学校网站首页内涵吧网站

贵州省建设学校网站首页,内涵吧网站,网络服务器租用,软件技术是做什么的类模式 我们知道插座的电压为交流电220V,而日常电器使用的是直流电且电压会较小,比如手机充电会通过插头适配器达到额定的输入电流。下面我们实现这个案例:将220V电压转化为5V的电压。 package Adapter.Class;public class Adapter extends …

类模式

我们知道插座的电压为交流电220V,而日常电器使用的是直流电且电压会较小,比如手机充电会通过插头适配器达到额定的输入电流。下面我们实现这个案例:将220V电压转化为5V的电压。

 

package Adapter.Class;public class Adapter extends Power220V implements Power5V {@Overridepublic int output5V() {int input = output220V();int output = input/44;return output;}
}
package Adapter.Class;public class Client {public static void main(String[] args) {Phone phone = new HuaWei();phone.charging(new Adapter());}
}
package Adapter.Class;public class HuaWei implements Phone{@Overridepublic void charging(Adapter adapter) {System.out.println("华为手机适配电压5伏");if(adapter.output5V()==5) System.out.println("华为手机充电成功");else System.out.println("华为手机充电不成功");}
}
package Adapter.Class;public interface Phone {public void charging(Adapter adapter);
}
package Adapter.Class;public interface Power5V {public int output5V();
}
package Adapter.Class;public class Power220V {private int power = 220;public int output220V() {System.out.println("电压" + power + "伏");return power;}
}

这种模式被称作类模式,可以看到Adapter继承了Adaptee(要适配者)并且实现了Target(要适配者)。对于一对一的适配还有一种模式叫对象模式,在这种模式下,Adaptee会作为Adapter的成员属性而不是让Adapter去继承Adaptee。

对象模式 

 

package Adapter.Object;public class Adapter implements Power5V {Power220V power220V;public Adapter() {}public Adapter(Power220V power220V) {this.power220V = power220V;}@Overridepublic int output5V() {int input = power220V.output220V();int output = input/44;return output;}
}
package Adapter.Object;public class Client {public static void main(String[] args) {Phone phone = new HuaWei();phone.charging(new Adapter(new Power220V()));}
}

 

双向模式

上面的案例介绍了一对一的适配,还有一种适配是双向的。下面用一个案例介绍:实现猫学狗叫和狗学猫抓老鼠。

package Adapter.BothWay;public class Adapter implements CatImpl,DogImpl{private CatImpl cat;private DogImpl dog;public CatImpl getCat() {return cat;}public void setCat(CatImpl cat) {this.cat = cat;}public DogImpl getDog() {return dog;}public void setDog(DogImpl dog) {this.dog = dog;}@Overridepublic void catchMice() {System.out.print("狗学");cat.catchMice();}@Overridepublic void cry() {System.out.print("猫学");dog.cry();}
}
package Adapter.BothWay;public class Cat implements CatImpl{@Overridepublic void catchMice() {System.out.println("猫抓老鼠");}@Overridepublic void cry() {}
}
package Adapter.BothWay;public interface CatImpl {public void catchMice();public void cry();
}
package Adapter.BothWay;public class Dog implements DogImpl{@Overridepublic void cry() {System.out.println("狗叫");}@Overridepublic void catchMice() {}
}
package Adapter.BothWay;public interface DogImpl {public void cry();public void catchMice();
}
package Adapter.BothWay;public class Client {public static void main(String[] args) {Adapter adapter = new Adapter();CatImpl cat = new Cat();DogImpl dog = new Dog();adapter.setCat(cat);adapter.setDog(dog);cat = (CatImpl) adapter;cat.cry();dog = (DogImpl) adapter;dog.catchMice();}
}

http://www.yayakq.cn/news/441077/

相关文章:

  • 我做的网站怎么打开很慢wordpress导航图片尺寸
  • 网站开发大作业购物网站建设成本
  • shopex网站备份wordpress配置数据库不正确
  • 济南集团网站建设费用杭州学编程哪里的培训机构好
  • wordpress 过滤get值泉州网站排名优化
  • phpwind做的网站东莞设计网页
  • 关于网站建设管理的通知中山网页设计
  • 天津网站建设代理商企业网站做seo
  • 网上书店网站建设的说明书无锡网站设计公司
  • 室内设计师之路网站国家为何要求所有网站均须备案
  • 学做彩票网站有哪些北京市规划网站
  • 自己如何建设网站聊天室国内优秀网站赏析
  • 大连 网站维护wix怎样做网站
  • 做产品设计之前怎么查资料国外网站iis建多个网站
  • 苏州建设监督网站首页网站建设设计图片
  • 网站域名以co与com有什么不同设计制作费的税收编码
  • 衡阳网站设计wordpress产品图片怎么改
  • 适配移动网站wordpress360
  • 网站所属网络网站中qq跳转怎么做的
  • wordpress网站go.php跳转老域名怎么做新网站
  • 网站短链接怎么做崇左网页设计
  • wordpress建立企业网站小型深圳网站页面设计
  • 广州企业建站网上接单
  • 网站备案在哪儿html做网站公告
  • 高端网站设计新感觉建站wordpress修改分类标题
  • 简述网站开发的基本流程图徐州开发的网站
  • 网站建设公司报价怎么找网站建设公司
  • 织梦可以做大型网站吗ui要学哪些知识
  • 常熟做网站韩国设计公司网站
  • php网站下载文件怎么做wordpress推送到公众号