您的位置:首页 > 其它

设计模式一:简单工厂

2016-03-10 16:21 411 查看
我们平时设计结构是这样的:



Api:

/***********************************************************************
* Module:  Api.java
* Author:  Administrator
* Purpose: Defines the Interface Api
***********************************************************************/

import java.util.*;

/** @pdOid 2f5b6e94-3fa1-4784-a481-d765005b9d14 */
public interface Api {
/** @param s
* @pdOid 6e801a4e-6306-4e92-b14c-550d8e4fd592 */
void test(String s);

}


Impl:

/***********************************************************************
* Module:  Impl.java
* Author:  Administrator
* Purpose: Defines the Class Impl
***********************************************************************/

import java.util.*;

/** @pdOid ac83967b-49b8-4e97-aae0-3652fdef5522 */
public class Impl implements Api {
/** @param s
* @pdOid 67703a67-f6fc-41f9-80fe-224700304409 */
public void test(String s) {
System.out.println("输入的字符串为:"+s);
}

}


Client:

/***********************************************************************
* Module:  Client.java
* Author:  Administrator
* Purpose: Defines the Class Client
***********************************************************************/

import java.util.*;

/** @pdOid 88dd7659-f597-42eb-b277-9c25600f2385 */
public class Client {
/** @param args
* @pdOid e2f42e9d-51d0-422f-9935-018fbdd70a0b */
public static void main(String[] args) {
Api api = new Impl();
api.test("大家好,初次咋到,请多多指教");
}

}


上面写得没错吧,在java的基础知识里面就是这么学的,难道有什么问题吗?
请仔细看谓语客户端的这句话:

Api api =newImpl();


然后再想想接口的功能和思想,发现了什么?仔细想想?

你会发现在客户端调用的时候,客户端不但知道了接口,同时还知道了具体的实现是Impl。接口的思想是“封装隔离”,而实现类Impl应该是被接口Api
封装并佟客户端隔离开的,也就是说,客户端根本就不知道具体的实现类是Impl。
问题描述:
在java编程中,出现只知接口而不知实现,怎么办。

来自为知笔记(Wiz)
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: