摸板模式与钩子
来源:互联网 发布:js 997硅酮中空玻璃胶 编辑:程序博客网 时间:2024/05/22 20:30
代码如下:
public class test
{
public static void main(String args[])
{
goods f=new fruit();
f.run();
goods d=new drink();
d.run();
}
}
class goods
{
void run()
{
getgoods();
pay();
}
void getgoods()
{
System.out.println("get");
}
void pay()
{
System.out.println("pay");
}
}
class fruit extends goods
{
void getgoods()
{
System.out.println("fruit");
}
}
class drink extends goods
{
void getgoods()
{
System.out.println("drink");
}
}
结果如图:
这样我们就可以避免在子类中涉及具体的算法,只需要将重复的内容已经算法提取到父类即可,降低了耦合。
至此,我们还可以加入一个钩子的机制,即可相应的对一些不需要的算法来进行控制。
代码如下
public class test
{
public static void main(String args[])
{
goods f=new fruit();
f.run();
goods d=new drink();
d.run();
}
}
class goods
{
void run()
{
if(hasGetGoods())
getgoods();
pay();
}
void getgoods()
{
System.out.println("get");
}
boolean hasGetGoods()
{
return false;
}
void pay()
{
System.out.println("pay");
}
}
class fruit extends goods
{
boolean hasGetGoods()
{
return true;
}
void getgoods()
{
System.out.println("fruit");
}
}
class drink extends goods
{
boolean hasGetGoods()
{
return false;
}
void getgoods()
{
System.out.println("drink");
}
}
结果:
联系我:renhanlinbsl@163.com
2016-8-3
21:25
- 摸板模式与钩子
- 摸板模式与钩子
- [设计模式]JavaScript钩子机制的应用场景与实现
- 线程钩子与进程钩子
- 钩子类型与钩子回调函数
- WinCE键盘钩子与鼠标钩子
- WinCE键盘钩子与鼠标钩子
- Java与系统钩子
- 键盘与鼠标钩子
- 鼠标钩子与WM_MOUSEWHEEL
- 钩子原理与应用
- 钩子与数据分析
- 钩子模式 HooK 模板方法模式
- JAVA设计模式:模板模式。钩子方法
- 消息钩子与定时器(VC_Win32)
- SetWindowsHookEx与全局共享钩子
- 过程扩展与放置钩子
- 回调函数与钩子。
- 5种常见流媒体视频协议播放网络地址,亲测可用
- 装饰设计模式
- 代理设计模式
- 工厂模式
- SQLite的PRAGME命令
- 摸板模式与钩子
- 抽象工厂模式
- 建造者模式
- asp.net 发送邮件
- 备忘录模式
- 【BNUOJ】Disdain Chain
- 状态模式
- 迭代器模式
- 访问者模式