您的位置:首页 > 编程语言 > Java开发

java的几种设计模式

2016-05-21 21:39 393 查看
(一)工厂方法模式:

简单工厂模式又称静态工厂方法模式。重命名上就可以看出这个模式一定很简单。它存在的目的很简单:定义一个用于创建对象的接口。

在简单工厂模式中,一个工厂类处于对产品类实例化调用的中心位置上,它决定那一个产品类应当被实例化, 如同一个交通警察站在来往的车辆流中
决定放行那一个方向的车辆向那一个方向流动一样。

先来看看它的组成:

1) 工厂类角色:这是本模式的核心,含有一定的商业逻辑和判断逻辑。在java中它往往由一个具体类实现。

2) 抽象产品角色:它一般是具体产品继承的父类或者实现的接口。在java中由接口或者抽象类来实现。

3) 具体产品角色:工厂类所创建的对象就是此角色的实例。在java中由一个具体类实现。

// 代理模式(Prosy):为其他对象提供一种代理以控制这个对象的访问。
/*
代理模式说白了就是“真是对象”的代表,
在访问对象时引入一定程度的剪接性,
应为这种间接性可以附加多种用途。
**/

public class test_10
{
public static void main(String[] args)
{
SuperMan man = new SuperMan();
Proxy proxy = new Proxy(man);
proxy.shopping();
}
}

interface Subject//主题
{
public void shopping();
}

// 被代理人
class SuperMan implements Subject
{
private String name;
public void shopping()
{
// 买之前要做大量的评估工作
System.out.println("为媳妇从网上购买进口化妆品,老贵了");

}
}

//代理人
class Proxy implements Subject
{
private Subject target;//被代理人
public Proxy(Subject target)
{
this.target =target;
}
// 实现接口方法
public void shopping()
{
// 代理之前要做的事情
System.out.println("做大量的商品专业评估");

target.shopping();// 被代理人真正的

//代购之后要做的事情
System.out.println("代购之后的客户满意度调查");
}
}


(二)代理模式:

所谓代理,就是一个人或者一个机构代表另一个人或者另一个机构采取行动。在一些情况下,一个客户不想或者不能够直接引用一个对象,而代理对象可以在客户端和目标对象之前起到中介的作用。

代理模式给某一个对象提供一个代理对象,并由代理对象控制对原对象的引用。

//简单工厂设计模式

//就是不再依赖当前类,自己判断需要哪种了类

public class test_9
{
public static void main(String[] args)
{
/*
耦合,使用者直接使用了具体的类,表示当前类依赖具体类,
这样的话当这个具体类发生变化,使用者将会收到影响
*/

/*
TCLPhone phone = new TClPhone();
phone.working();
*/

//不依赖类;
Work work = Factory.getWork("tv");
work.working();
}
}

class Factory
{
public static Work getWork(String product)
{
if ("phone".equals(product))
{
return new TCLPhone();
}
else if ("tv".equals(product))
{
return new TCLTV();
}
else
{
return null;
}
}
}

interface Work
{
public void working();
}

class TCLPhone implements Work
{
public void working()
{
System.out.println("手机已经开机完毕,可以使用了");
}
}
class TCLTV implements Work
{
public void working()
{
System.out.println("电视机已打开,正在播放新闻联播节目");
}
}
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: