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
- java学习之三种常用设计模式
- Java之设计模式【三】
- java设计模式之三
- Java设计模式之三
- java之设计模式三
- Java之设计模式三
- 学习Java 23种设计模式详解笔记之行为型模式(三)
- PHP常用的三种设计模式学习总结
- Java设计模式之三种工厂模式
- 设计模式之适配器模式(三种实现) JAVA
- java 设计模式之三-模版模式
- Java设计模式(三) 之 适配器模式
- JAVA设计模式之三:代理模式
- 【设计模式】常用Java设计模式之单例模式
- Linux之vi三种模式常用操作的学习
- Linux之vi三种模式常用操作的学习
- Java技术常用设计模式(三)--- 模板方法模式
- Java: 23种设计模式全解析之三
- 13 layers hardwood core dynea brown film faced plywood
- Android学习——ListView的使用
- lucene3.6.1 经典案例 入门教程
- 文件处理工具类
- 26. Remove Duplicates from Sorted Array
- java学习之三种常用设计模式
- 【算法笔记】数位dp小结
- IOS cell中,点击button时,确定哪一行的button被点击了。
- selection does not contain a main type
- Android UI进级之 theme和 style
- Bean64加密算法
- MTK安卓第三方内核模块编译
- 经典基础笔试题
- test_我的第一条博客