Java

Java 内部类的 this 问题

在一个风和日丽的下午,码农A写了一个可以获取数据的组件,代码是这样的: package net.gerhut.example.authora; public class Component { public void getData() { System.out.println("Transferring data..."); }; } 码农B负责整个系统开发,使用码农A设计的组件,认为码农A的获取数据应该有个回调函数,就给它加了一个回调函数,代码是这样的: package net.gerhut.example.authorb; import net.

  • George Cheng
    George Cheng
2 min read
Java

从 JDK 中记设计模式

按字母排序,尽量找哪些简单的J2SE的实现。 Abstract Factory:提供一个创建一系列相关或相互依赖对象的接口,而无需指定它们具体的类。 例子:java.util.Calendar#getInstance(TimeZone) 提供一个时区参数即可从Calendar中创建需要的Calendar类的子类,而无需指定甚至知道它到底是哪个类调用的是哪个类的构造方法。 Adapter:将一个类的接口转换成客户希望的另外一个接口。Adapter模式使得原本由于接口不兼容而不能一起工作的那些类可以一起工作。 例子:java.io.InputStreamReader(InputStream) 可以将任何InputStream类(如文本流,网络流,内存流)的接口(InputStream)转换成用户希望的Reader抽象类(接口)(InputStreamReader)。可以使得那些原本不兼容Stream但是接受Reader而的组件可以正常工作。 Bridge:

  • George Cheng
    George Cheng
9 min read
Java

双人(或者两个团队)合作写一个软件,如何做到前台后台并行开发相互不受影响?

我以软工CW的用户登录功能举例,用MVC模式的角度作简要阐述。 首先,在对需求的了解的基础上,双方共同约定Controller的所有接口,一般是前台人员提出需求,后台人员针对数据结构对值类型做优化。比如前台现在需要做一个用户登录,那么需要一个隶属于UserController的login方法加此外,为了进一步使前后台相分离,Controller建议使用单例模式并采用以下instance写法。 package controller; public interface UserController { /** * The unique controller instance. */ public final static UserController instance = null; /** * Login method * @param username The username. * @param

  • George Cheng
    George Cheng
3 min read