A股上市公司传智教育(股票代码 003032)旗下技术交流社区北京昌平校区

 找回密码
 加入黑马

QQ登录

只需一步,快速开始

© 陈云展 中级黑马   /  2012-11-3 13:49  /  1749 人查看  /  6 人回复  /   0 人收藏 转载请遵从CC协议 禁止商业使用本文

任意模式任意谈。能扯多少扯多少。可以代码可以文字。想和大家交流交流。

评分

参与人数 1技术分 +1 收起 理由
杨志 + 1

查看全部评分

6 个回复

倒序浏览
这位大哥,您上面的面向对象,我谈了,我感觉,可以感慨两句。其实就是牢骚两句。
你有说道设计模式。我感觉,您要不就是技术特牛,要不就是,学的东西,特别的乱。
我感觉学的东西特别乱的可能性特大。我建议这位大哥,最好是稍微整理一下基础吧。
先别说设计模式。要是我没有敲上几年的代码。我是在面试的时候,不敢说设计模式的。
我的感觉是此处的水很深。请您先绕行。

评分

参与人数 1技术分 +1 收起 理由
杨志 + 1

查看全部评分

回复 使用道具 举报
本帖最后由 黄小贝 于 2012-11-3 14:21 编辑

只有在你亲手做过一个大型的项目,并且由于你的代码结构的混乱性导致了项目失败后,你才会开始觉得设计模式的重要性,而且最忌讳的是为了用设计模式而去用设计模式,我个人觉得,设计模式是在代码重构的过程中总结出来的,出发点是重构,(重构的概念可以自行谷歌)

点评

好。  发表于 2012-11-3 20:55
回复 使用道具 举报
http://bbs.itheima.com/thread-30213-1-1.html{:soso_e170:}动态代理。
回复 使用道具 举报
本帖最后由 陈云展 于 2012-11-3 21:04 编辑

http://blog.csdn.net/snowjlz/article/details/8127875{:soso_e170:}单例模式。
回复 使用道具 举报
设计模式之静态代理。
好的不说直接上代码。
Moveable.java
  1. package com.snow;
  2. public interface Moveable {
  3.         void move();
  4. }
复制代码
Tank.java
  1. package com.snow;
  2. import java.util.Random;
  3. public class Tank implements Moveable{
  4.         @Override
  5.         public void move() {
  6.                 //long start = System.currentTimeMillis();
  7.                 System.out.println("Tank Moving .......");
  8.                 try {
  9.                         Thread.sleep(new Random().nextInt(10000));
  10.                 } catch (InterruptedException e) {
  11.                         e.printStackTrace();
  12.                 }
  13.                 //long end = System.currentTimeMillis();
  14.                 //System.out.println("time:" + (end - start));
  15.         }
  16. }
复制代码
Tank2.java
  1. package com.snow;
  2. public class Tank2 extends Tank{
  3.         @Override
  4.         public void move() {
  5.                 long start = System.currentTimeMillis();
  6.                 super.move();
  7.                 long end = System.currentTimeMillis();
  8.                 System.out.println("time:" + (end - start));
  9.         }
  10. }
复制代码
Tank3.java
  1. package com.snow;
  2. public class Tank3 implements Moveable{
  3.         Tank t;
  4.         public Tank3(Tank t) {
  5.                 super();
  6.                 this.t = t;
  7.         }
  8.         @Override
  9.         public void move() {
  10.                 long start = System.currentTimeMillis();
  11.                 t.move();
  12.                 long end = System.currentTimeMillis();
  13.                 System.out.println("time:" + (end - start));
  14.         }
  15. }
复制代码
简单给予说明。实现静态代理的方法有两种:
  • 继承实现
  • 实现同一接口聚合被代理对象
  • 两者聚合比较好。因为更为灵活。
回复 使用道具 举报
大家什么代理都可以谈的。比哪state command adapter proxy singleton strategy facade mediator observer bridge decorator and so on....
回复 使用道具 举报
您需要登录后才可以回帖 登录 | 加入黑马