面向对象高级(四)----工厂模式,代理模式,适配器模式
2014-03-27 20:45
330 查看
接口的实际应用------制定标准
代码如下
工厂设计模式---java中最经常使用的一种模式
要针对接口编程,不要针对实现编程。
代理设计模式
设配器模式设计
代码如下
package lianxijihe; interface USB{ void start(); void stop(); } class Computer{ public static void plugin(USB usb){ usb.start(); System.out.println("设备正在工作!!!!!"); usb.stop(); } } class Flash implements USB{ public void start(){ System.out.println("U盘正在读入"); } public void stop(){ System.out.println("U盘停止工作"); } } class Print implements USB{ public void start(){ System.out.println("打印机正在工作"); } public void stop(){ System.out.println("打印机停止工作"); } } public class lianxi019 { public static void main(String args[]){ Computer.plugin(new Print()); Computer.plugin(new Flash()); }
}
工厂设计模式---java中最经常使用的一种模式
package lianxijihe; interface Fruit{ void eat(); } class Apple implements Fruit{ public void eat(){ System.out.println("吃苹果"); } } class Banana implements Fruit{ public void eat(){ System.out.println("吃香蕉"); } } class Factory { static Fruit f = null; public static Fruit getInstance(String ClassName){ if("apple".equals(ClassName)){ f = new Apple(); } if("banana".equals(ClassName)){ f = new Banana(); } return f; } } public class lianxi020 { public static void main(String args[]){ Fruit f = Factory.getInstance("apple"); if(f!=null){ f.eat(); } } }
要针对接口编程,不要针对实现编程。
代理设计模式
package lianxijihe; interface NetWork{ void Open(); } class Real implements NetWork{ public void Open(){ System.out.println("我要上网"); } } class Proxy implements NetWork{ NetWork net = null; public Proxy(NetWork net){ this.net = net; } public void check(){ System.out.println("检查上网是否安全"); } public void Open(){ check(); this.net.Open(); } } public class lianxi021 { public static void main(String args[]){ NetWork net = new Proxy(new Real()); net.Open(); } }
设配器模式设计
package lianxijihe; interface Window{ void open(); void close(); void activated(); void iconified(); void deiconified(); } abstract class WindowAdapter implements Window{ public void open(){}; public void close(){}; public void activated(){}; public void iconified(){}; public void deiconified(){}; } class WindowImpl extends WindowAdapter{ public void open(){ System.out.println("窗口打开"); } public void close(){ System.out.println("窗口关闭"); } } public class lianxi022 { public static void main(String args[]){ Window w = new WindowImpl(); w.open(); w.close(); } }
相关文章推荐
- JS面向对象基础讲解(工厂模式、构造函数模式、原型模式、混合模式、动态原型模式)
- 可复用面向对象软件基础——设计模式(二)之工厂方法模式
- JS面向对象基础讲解(工厂模式、构造函数模式、原型模式、混合模式、动态原型模)
- JS面向对象基础讲解(工厂模式、构造函数模式、原型模式、混合模式、动态原型模式)
- c#面向对象设计模式之工厂模式
- C#面向对象设计模式纵横谈 学习笔记3 Abstract Factory 抽象工厂
- 面向对象设计模式---之代理模式
- PHP 面向对象程序设计(oop)学习笔记(三) - 单例模式和工厂模式
- PHP高级对象构建 工厂模式的使用
- PHP面向对象之旅:简单工厂模式
- php面向对象开发之——工厂模式
- 面向对象设计模式纵横谈:Adapter 适配器模式(笔记记录)
- PHP高级对象构建 工厂模式的使用
- 面向对象设计模式之---简易工厂模式(Simple Factory Pattern)
- javascript面向对象基础讲解(工厂模式、构造函数模式、原型模式、混合模式、动态原型模式)
- 深入PHP面向对象、模式与实践——高级特性(3)
- 深入PHP面向对象、模式与实践——高级特性(5)
- JavaScript高级程序设计之面向对象的程序设计之创建对象之工厂模式第6.2.1讲笔记
- 面向对象语言【33】---工厂模式 【34】----构造函数