黑马程序员 设计模式思维发散

     ------- android培训java培训、期待与您交流! ----------

既然要发散思维,那么我就先提几个问题:

1、面向对象编程中<面向接口编程和多态>是不是代理模式的体现?

     举个例子:Animal a = new Dog();

     Animal类型的a是不是具体实现new Dog()的代理?通过a访问的是不是具体的new Dog()的实现?

2、Runnable、Thread是不是策略模式的体现?

     举个例子:new Thread(new Runnable(){

                                             public void run(){……}

                                                                  }).start();

     通过不同的Runnable实现类(不同的策略),实现不同的功能。

3、Javascript中的事件模型是不是观察者模式的体现?

     举个例子:$("#button").onClick = ……

     不同:面向函数编程中注册的是事件函数,面向对象编程中注册的是监听器(对象)

4、Java集合中迭代器的实现是不是就是Javascript语言中的闭包呢?

     举个例子:Iterator it = arr.iterator();

     通过生成的迭代器对象能够变量集合中的元素。

5、模板方法的应用场景是不是:

     1、定义一个接口

     2、声明一个抽象类实现接口中的公共部分

     3、不同情况下的具体实现通过继承抽象类并重写abstract方法实现。

6、命令模式中的命令对象是不是就像MVC三层架构中的C(控制器)?

     民以食为天嘛,拿餐馆举个例子:

     1、来餐馆吃饭的客人就像是浏览器

     2、餐馆里的服务员就像是Commander,持有客人的菜单,命令厨师按照菜单做菜

     3、厨师做好菜以后服务员给客人上菜

     服务员解耦了客人和厨师之间的关系

7、jetty服务器中的handle是不是就是职责链模式的体现?

     所有的handler的职责都是相同的:处理输入,可以返回也可以向下传递。

     是不是和组合模式很像?

     职责连对外显示出一个入口request和一个出口response,内部是一个黑箱;

     组合模式对外显示出一个Composite对象,至于这个对象是由哪些对象组成的,我们完全不了解,也不用了解。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值