您的位置:首页 > 其它

面向对象高级(四)----工厂模式,代理模式,适配器模式

2014-03-27 20:45 330 查看
接口的实际应用------制定标准


代码如下
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();
}
}
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: