当前位置: 首页 > news >正文

网站排名要怎么做专业国外建设网站

网站排名要怎么做,专业国外建设网站,合肥企业网站建设专家,短视频app源码搭建文章目录 享元模式1.引出享元模式1.展示网站项目需求2.传统方案解决3.问题分析 2.享元模式1.基本介绍2.原理类图3.外部状态和内部状态4.类图5.代码实现1.AbsWebSite.java 抽象的网站2.ConcreteWebSite.java 具体的网站#xff0c;type属性是内部状态3.WebSiteFactory.java 网站… 文章目录 享元模式1.引出享元模式1.展示网站项目需求2.传统方案解决3.问题分析 2.享元模式1.基本介绍2.原理类图3.外部状态和内部状态4.类图5.代码实现1.AbsWebSite.java 抽象的网站2.ConcreteWebSite.java 具体的网站type属性是内部状态3.WebSiteFactory.java 网站工厂根据类型获取对应类型的网站4.User.java 使用网站的用户是外部状态5.Client.java6.结果 6.小结 3.享元模式在Integer的应用 代理模式1.基本介绍1.介绍2.简单类图 2.静态代理1.基本介绍2.类图3.代码实现1.目录结构2.ITeacherDao.java 被代理的接口3.TeacherDao.java 被代理的实现类4.TeacherDaoProxy.java 静态代理类5.Client.java6.结果 2.动态代理JDK代理1.基本介绍2.类图3.代码实现1.ITeacherDao.java 被代理的接口2.TeacherDao.java 被代理的类3.ProxyFactory.java 代理工厂返回动态代理对象4.Client.java5.结果 3.Cglib代理1.基本介绍2.注意事项3.类图4.引入四个jar包5.代码实现1.目录结构2.TeacherDao.java 被代理的类3.ProxyFactory.java 返回代理对象的工厂4.Client.java5.结果 6.几种变体 享元模式 1.引出享元模式 1.展示网站项目需求 2.传统方案解决 3.问题分析 2.享元模式 1.基本介绍 2.原理类图 3.外部状态和内部状态 4.类图 5.代码实现 1.AbsWebSite.java 抽象的网站 package com.sun;/*** Description: 抽象的网站* Author sun* Create 2024/6/6 19:45* Version 1.0*/ public abstract class AbsWebSite {public abstract void use(User user); }2.ConcreteWebSite.java 具体的网站type属性是内部状态 package com.sun;/*** Description: 具体的网站* Author sun* Create 2024/6/6 19:46* Version 1.0*/ public class ConcreteWebSite extends AbsWebSite {// 网站的发布类型private String type ;// 在创建网站时把具体的类型传进来public ConcreteWebSite(String type) {this.type type;}Overridepublic void use(User user) {System.out.println(网站的发布类型为 type user.getName() 在使用中);} }3.WebSiteFactory.java 网站工厂根据类型获取对应类型的网站 package com.sun;import java.util.HashMap;/*** Description: 网站的工厂类根据需求返回一个具体的网站* Author sun* Create 2024/6/6 19:49* Version 1.0*/ public class WebSiteFactory {// 一个集合充当池的作用private HashMapString, ConcreteWebSite pool new HashMap();public AbsWebSite getWebsiteCategory(String type) {// 如果池中没有包含对应类型的对象就创建一个对象放到池中if (!pool.containsKey(type)) {pool.put(type, new ConcreteWebSite(type));}// 只要到这里了就必然可以拿到对象return (AbsWebSite) pool.get(type);}// 获取池中的网站总数public int getWebSiteCount() {return pool.size();} }4.User.java 使用网站的用户是外部状态 package com.sun;/*** Description: 享元模式中的外部状态* Author sun* Create 2024/6/6 20:12* Version 1.0*/ public class User {private String name;public User(String name) {this.name name;}public String getName() {return name;}public void setName(String name) {this.name name;} }5.Client.java package com.sun;/*** Description:* Author sun* Create 2024/6/6 20:02* Version 1.0*/ public class Client {public static void main(String[] args) {// 创建一个工厂类WebSiteFactory webSiteFactory new WebSiteFactory();// 要一个以新闻形式发布的网站AbsWebSite webSite webSiteFactory.getWebsiteCategory(新闻);webSite.use(new User(tom));// 要一个以博客形式发布的网站后面即使要更多相同类型的网站都会直接从池中获取而不会创建新的实例AbsWebSite webSite2 webSiteFactory.getWebsiteCategory(博客);webSite2.use(new User(jack));AbsWebSite webSite3 webSiteFactory.getWebsiteCategory(博客);webSite3.use(new User(lisa));AbsWebSite webSite4 webSiteFactory.getWebsiteCategory(博客);webSite4.use(new User(milan));int webSiteCount webSiteFactory.getWebSiteCount();System.out.println(webSiteCount webSiteCount);} }6.结果 6.小结 3.享元模式在Integer的应用 代理模式 1.基本介绍 1.介绍 2.简单类图 2.静态代理 1.基本介绍 2.类图 3.代码实现 1.目录结构 2.ITeacherDao.java 被代理的接口 package com.sun.staticproxy;/*** Description: 接口* Author sun* Create 2024/6/7 19:05* Version 1.0*/ public interface ITeacherDao {void teach(); }3.TeacherDao.java 被代理的实现类 package com.sun.staticproxy;/**TeacherDaoProxy.java* Description: 实现类* Author sun* Create 2024/6/7 19:06* Version 1.0*/ public class TeacherDao implements ITeacherDao{Overridepublic void teach() {System.out.println(老师正在授课中);} }4.TeacherDaoProxy.java 静态代理类 package com.sun.staticproxy;/*** Description: 代理TeacherDao* Author sun* Create 2024/6/7 19:06* Version 1.0*/ public class TeacherDaoProxy implements ITeacherDao{// 使用构造器进行聚合private ITeacherDao teacherDao;public TeacherDaoProxy(ITeacherDao teacherDao) {this.teacherDao teacherDao;}Overridepublic void teach() {System.out.println(代理开始);teacherDao.teach();System.out.println(代理结束);} }5.Client.java package com.sun.staticproxy;/*** Description:* Author sun* Create 2024/6/7 19:11* Version 1.0*/ public class Client {public static void main(String[] args) {TeacherDaoProxy teacherDaoProxy new TeacherDaoProxy(new TeacherDao());teacherDaoProxy.teach();} }6.结果 2.动态代理JDK代理 1.基本介绍 2.类图 3.代码实现 1.ITeacherDao.java 被代理的接口 package com.sun.dynamic;/*** Description: 被代理的接口* Author sun* Create 2024/6/7 19:25* Version 1.0*/ public interface ITeacherDao {void teach(String name);}2.TeacherDao.java 被代理的类 package com.sun.dynamic;/*** Description: 实现类* Author sun* Create 2024/6/7 19:06* Version 1.0*/ public class TeacherDao implements ITeacherDao {Overridepublic void teach(String name) {System.out.println(name 老师正在授课中);}}3.ProxyFactory.java 代理工厂返回动态代理对象 package com.sun.dynamic;import java.lang.reflect.InvocationHandler; import java.lang.reflect.Method; import java.lang.reflect.Proxy; import java.util.Arrays;/*** Description: 动态代理对象可以对其代理的对象的任意方法添加任意操作* Author sun* Create 2024/6/7 19:27* Version 1.0*/ public class ProxyFactory {// 构造器聚合一个目标对象private Object target;public ProxyFactory(Object target) {this.target target;}// 给目标对象生成一个代理对象public Object getProxyInstance() {/*** 参数说明* ClassLoader loader:指定当前目标对象使用的类加载器* Class?[] interfaces:是目标对象实现的接口类型使用泛型方法确认类型* InvocationHandler h:是事件处理当使用代理对象调用目标对象的方法时会触发*/return Proxy.newProxyInstance(target.getClass().getClassLoader(), target.getClass().getInterfaces(), new InvocationHandler() {/*** method目标方法的Method对象可以用来调用目标任何方法* args目标方法的参数也就是动态代理对象调用目标任何方法时传入的参数* return 返回调用目标方法的返回值也可以返回null* throws Throwable*/Overridepublic Object invoke(Object proxy, Method method, Object[] args) throws Throwable {System.out.println(method method , args Arrays.toString(args));System.out.println(动态代理开始);/*invoke方法的第一个参数是目标对象第二个参数的目标方法的参数*/Object result method.invoke(target, args);System.out.println(动态代理结束);return result;}});} }4.Client.java package com.sun.dynamic;/*** Description:* Author sun* Create 2024/6/7 19:47* Version 1.0*/ public class Client {public static void main(String[] args) {// 创建一个目标对象ITeacherDao target new TeacherDao();// 得到代理对象ITeacherDao proxy (ITeacherDao) new ProxyFactory(target).getProxyInstance();// 使用代理对象调用方法proxy.teach(李华);} }5.结果 3.Cglib代理 1.基本介绍 2.注意事项 3.类图 4.引入四个jar包 5.代码实现 1.目录结构 2.TeacherDao.java 被代理的类 package com.sun.cglib;/*** Description: 被代理的类* Author sun* Create 2024/6/8 19:37* Version 1.0*/ public class TeacherDao {public void teach(String name) {System.out.println(name 老师授课中使用的是cglib代理不需要实现接口);} }3.ProxyFactory.java 返回代理对象的工厂 package com.sun.cglib;import net.sf.cglib.proxy.Enhancer; import net.sf.cglib.proxy.MethodInterceptor; import net.sf.cglib.proxy.MethodProxy;import java.lang.reflect.Method;/*** Description:* Author sun* Create 2024/6/8 19:38* Version 1.0*/ public class ProxyFactory implements MethodInterceptor {// 构造器聚合一个目标对象private Object target;public ProxyFactory(Object target) {this.target target;}// 返回目标对象的代理对象public Object getProxyInstance() {//1.创建一个工具类Enhancer enhancer new Enhancer();//2.设置父类enhancer.setSuperclass(target.getClass());//3.设置回调函数enhancer.setCallback(this);//4.创建子类对象return enhancer.create();}/*** 当使用代理对象调用目标对象的函数时就会跳到这个函数跟之前动态代理时类似* param o* param method 代理对象调用的目标对象的函数* param args 函数的参数* param methodProxy* return* throws Throwable*/Overridepublic Object intercept(Object o, Method method, Object[] args, MethodProxy methodProxy) throws Throwable {System.out.println(cglib代理模式开始);// 调用目标对象的函数System.out.println(method method);System.out.println(args args);Object returnVal method.invoke(target, args);System.out.println(cglib代理结束);return returnVal;} }4.Client.java package com.sun.cglib;/*** Description:* Author sun* Create 2024/6/8 19:50* Version 1.0*/ public class Client {public static void main(String[] args) {// 创建一个目标对象TeacherDao teacherDao new TeacherDao();// 得到目标对象的代理对象ProxyFactory proxyFactory new ProxyFactory(teacherDao);TeacherDao proxyInstance (TeacherDao) proxyFactory.getProxyInstance();// 使用代理对象来调用目标对象函数则会被代理proxyInstance.teach(小明);} }5.结果 6.几种变体
http://www.hkea.cn/news/14342276/

相关文章:

  • win8风格网站 源码使用免费建站
  • 北京品牌网站定制公司济南网站APP
  • 手机微网站尺寸线上渠道推广怎么做
  • 互联网网站建设月总结centos怎么装WordPress
  • 网站建设的工作描述深圳在哪些网站找什么好处
  • 凡科做的网站推效果制作旅游网站简单
  • 上海网站维护网页美工制作网站
  • 网站专题分类国内网站空间 linux
  • 品牌营销网站建设流程文本编辑器做网站
  • 签名设计网站计算机专业有哪些
  • 网站开发 架构设计wordpress 主题模板
  • 网站上传的图片不显示做网站销售这几天你学到了什么
  • 淘宝网站推广工具dw如何导出成为一个网页
  • 石家庄有什么做网站的公司网站服务器租用有什么好
  • 网站推广seo代理php商城项目
  • 网站建设费可以做海报的网站
  • 做ppt兼职网站移动互联网在财务会计领域的应用
  • 东莞企业网站后缀wordpress atom
  • 百度网站地图网站上传后怎么打开
  • seo网站推广价格做网站泉州
  • 官网站内推广内容哈尔滨网站建设索q.479185700
  • 什么2007做视频网站游戏网站排行榜前十名
  • 如何查询网站被百度收录情况厦门有没网站建设的公司
  • 做网站要注册商标第几类wordpress 2015主题公园
  • angular做的网站深圳微商城网站设计制作
  • 品牌网站建设十小蝌蚪网站需要做404页面吗
  • 天津企商网站建设公司wordpress房产主题汉化版
  • 济南专业网站制作网站建设方案书阿里云模板
  • 公司建设网站价格做网站运营工资多少
  • wordpress建哪些网站装修图片大全