公司网站开发费用兴田德润官方网站,45岁至50岁找工作,wordpress创建注册页面,网站设计制作哪家好一、写在前面
结构型模式描述如何将类或对象按某种布局组成更大的结构。它分为类结构型模式和对象结构型模式#xff0c;前者采用继承机制来组织接口和类#xff0c;后者釆用组合或聚合来组合对象。由于组合关系或聚合关系比继承关系耦合度低#xff0c;满足“合成复用原则…一、写在前面
结构型模式描述如何将类或对象按某种布局组成更大的结构。它分为类结构型模式和对象结构型模式前者采用继承机制来组织接口和类后者釆用组合或聚合来组合对象。由于组合关系或聚合关系比继承关系耦合度低满足“合成复用原则”所以对象结构型模式比类结构型模式具有更大的灵活性。 结构型模式分为以下 7 种代理模式适配器模式装饰者模式桥接模式外观模式组合模式享元模式
二、介绍
由于某些原因需要给某对象提供一个代理以控制对该对象的访问。这时访问对象不适合或者不能直接引用目标对象代理对象作为访问对象和目标对象之间的中介。Java中的代理按照代理类生成时机不同又分为静态代理和动态代理。静态代理代理类在编译期就生成而动态代理代理类则是在Java运行时动态生成。动态代理又有JDK代理和CGLib代理两种。
三、静态代理
如果要买火车票的话需要去火车站买票坐车到火车站排队等一系列的操作显然比较麻烦。而火车站在多个地方都有代售点我们去代售点买票就方便很多了。这个例子其实就是典型的代理模式火车站是目标对象代售点是代理对象。静态代理的实现是指的是A和B同时实现一个接口然后在A中聚合一个B,那么client可以调用A中的方法这个方法其实是去调用B的方法。这样可以大大降低client对B的耦合程度
//卖票接口
public interface SellTickets {void sell();
}
//火车站 火车站具有卖票功能所以需要实现SellTickets接口
public class TrainStation implements SellTickets {public void sell() {System.out.println(火车站卖票);}
}
//代售点
public class ProxyPoint implements SellTickets {private TrainStation station new TrainStation();public void sell() {System.out.println(代理点收取一些服务费用);station.sell();}
}
//测试类
public class Client {public static void main(String[] args) {ProxyPoint pp new ProxyPoint();pp.sell();}
}四、优缺点
代理模式在客户端与目标对象之间起到一个中介作用和保护目标对象的作用代理对象可以扩展目标对象的功能代理模式能将客户端与目标对象分离在一定程度上降低了系统的耦合度