java学习之三种常用设计模式

来源:互联网 发布:centos 7 shengka 编辑:程序博客网 时间:2024/04/29 18:55

一、适配器设计模式

简单来说,就是通过一个间接类来选择性的来覆写一个接口

interface Window{public void open() ;// 打开窗口public void close() ;// 关闭窗口public void icon() ;// 最小化public void unicon() ;// 最大化}abstract class WindowAdapter implements Window{public void open(){}public void close(){}public void icon(){}public void unicon(){}};class MyWindow extends WindowAdapter{public void open(){System.out.println("打开窗口!") ;}};public class AdpaterDemo{public static void main(String args[]){Window win = new MyWindow() ;win.open() ;}}

二、工厂设计模式

设计一个选择吃橘子或者苹果的例子,一般设计时可能会直接在主类中实例化对象,但通过工厂设计模式通过一个间接类可以减少主类中(客户端)的代码量

interface Fruit{public void eat() ;}class Apple implements Fruit{public void eat(){System.out.println("吃苹果。。。") ;}};class Orange implements Fruit{public void eat(){System.out.println("吃橘子。。。") ;}};class Factory{// 工厂类public static Fruit getFruit(String className){Fruit f = null ;if("apple".equals(className)){f = new Apple() ;}if("orange".equals(className)){f = new Orange() ;}return f ;}};public class InterDemo{public static void main(String args[]){Fruit f = Factory.getFruit(args[0]) ;if(f!=null){f.eat() ;}}}

三、代理设计模式

以讨债为例

interface Give{public void giveMoney() ;}class RealGive implements Give{public void giveMoney(){System.out.println("把钱还给我。。。。。") ;}};class ProxyGive implements Give{// 代理公司private Give give = null ;public ProxyGive(Give give){this.give = give ;}public void before(){System.out.println("准备:小刀、绳索、钢筋、钢据、手枪、毒品") ;}public void giveMoney(){this.before() ;this.give.giveMoney() ;// 代表真正的讨债者完成讨债的操作this.after() ;}public void after(){System.out.println("销毁所有罪证") ;}};public class ProxyDemo{public static void main(String args[]){Give give = new ProxyGive(new RealGive()) ;give.giveMoney() ;}};


0 0
原创粉丝点击