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

做网站前台步骤/爱链接网如何使用

做网站前台步骤,爱链接网如何使用,设计公司500强排名,西安网站建设咪豆上一篇Java接口 详解(一)讲到了接口的基本概念、接口的使用和接口的实际应用(标准定义)。我们接着来讲。 一、接口的应用—工厂设计模式(Factory) 我们先看一个范例: package com.wz.factory…

上一篇Java接口 详解(一)讲到了接口的基本概念、接口的使用和接口的实际应用(标准定义)。我们接着来讲。

一、接口的应用—工厂设计模式(Factory)

我们先看一个范例:

package com.wz.factoryDemo;interface Fruit{public void eat();
}class Apple implements Fruit{@Overridepublic void eat() {System.out.println("吃苹果。。。");}
}public class Client {public static void main(String[] args) {Fruit f = new Apple();f.eat();}}

运行结果:

吃苹果。。。

以上程序非常简单,就是通过接口的子类为接口对象实例化,但这样操作会存在什么样的问题呢?在软件开发中,我们强调以下两点:
(1)主方法或主类是一个客户端,客户端的操作应该越简单越好;
(2)客户端之外的代码修改,不影响用户的使用。也就是说,用户可以不用去关心代码是否由变更。

确实,以上范例没有任何语法错误,但关键的问题是客户端中出现的new关键字上。因为,一个接口会有多个子类,对于上面的Furit接口,也可能出现多个子类对象。

来看范例,我们多加上一个接口子类:

class Orange implements Fruit{@Overridepublic void eat() {System.out.println("吃橘子。。。");}}

客户端是若要得到这个新的子类对象,需要修改代码为:

public class Client {public static void main(String[] args) {//Fruit f = new Apple();Fruit f = new Orange();f.eat();}}

从上面我们发现,如果直接在客户端上产生一个实例化对象,那么我们每次要更换对象时,都需要修改客户端代码,这样的做法明显是不好的。而在整个代码中,我们最关心的是如何取得一个Fruit接口对象,然后进行方法的调用,至于这个接口对象时被谁实例化的,不是客户端关心的。这个问题就是代码耦合度太高!耦合度太高的产生的直接问题是代码不方便维护。

在本程序之中,最大的问题在于耦合上,发现在主方法中,一个接口和一个子类紧密耦合在一起,这种方式比较直接,可以简单的理解为由A —>B,但是这种紧密的方式不方便于维护,所以我们可以这样改:A—> C—>B,中间经历了一个过渡,这样一来,B改变,然后C去改变,但是A不需要改变。这可以参考Java中JVM的设计思想:程序—> JVM—>适应不同的操作系统。

于是,本程序我们这么修改,加上一个工厂类:

class Factory{public static Fruit getInstance(String className){if("apple".equals(className)){return new Apple();}else if("orange".equals(className)){return new Orange();}else{return null;}}
}

然后修改客户端:

public class Client {public static void main(String[] args) {Fruit f = Factory.getInstance("apple");f.eat();}}

运行结果:

吃苹果。。。

这样的话,客户端不会看见具体的子类,客户端不再和一个具体的子类耦合在一起了,就算以后增加了新的子类,那么只需要修改Factory类即可实现,客户端的调用不会改变。

工厂模式的关系图如下:

factory

从工厂模式关系图看出,客户端不和具体的子类耦合在一起,若要增加新的子类,只需要修改Factory类即可实现。

二、接口的应用—代理设计模式(Proxy)

Java代理设计模式单独讲解,请移步到 Java设计模式之代理模式

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

关系图如下:

proxy

代理设计模式的核心精髓就在于:有一个主题操作接口(接口中可能有多个方法),而核心业务主题只完成核心功能,而代理主题负责完成所有与核心主题有关的辅助性操作。

三、Java抽象类和接口的区别

区别

通过上面的分析可以得出结论:在开发之中,抽象类和接口实际上都是可以使用的,并且使用那一个都没有明确的限制,可是抽象类有一个最大的缺点 : 一个子类只能够继承一个抽象类,存在单继承的局限。所以当遇到抽象类和接口都可以使用的情况下,优先考虑接口,避免单继承局限。

一些参考原则(根据自身情况参考):
(1)在进行某些公共操作的时候一定要定义出接口;
(2)有了接口就需要利用子类完善方法;
(3)如果是我们自己写的接口,尽量不要使用关键字new去直接实例化接口子类,要使用工厂类完成。

http://www.jmfq.cn/news/5106799.html

相关文章:

  • 网站优化预算/seo优化行业
  • html5做动态网站建设/北京seo地址
  • wx网站开发/抖音搜索seo排名优化
  • 济南制作网站的公司/磁力猫torrentkitty官网
  • 做宣传单用什么网站/职业培训学校
  • 建设一个最普通网站要多少钱/一键优化清理
  • b2b2c平台网站建设/中国互联网协会
  • 网站psd切图做响应式效果/网站制作的基本流程
  • 网页生成pdf/百度seo排名规则
  • 最少的钱怎么做网站/旺道网站排名优化
  • 武汉网站推广/搜索引擎优化seo什么意思
  • 设计比例网站/网络品牌推广
  • 长沙做网站要多少钱/网页制作成品
  • win7 iis新建网站/超级外链工具有用吗
  • 网站建设员工技能要求/关键词查询工具软件
  • 营销型网站的分类/软文怎么写吸引人
  • 自学做网站可以吗/班级优化大师app
  • 主题 外贸网站 模板/电商网站商品页的优化目标是什么
  • 沈阳成创网站建设公司/seo研究中心教程
  • 模板网站怎么做才美观/免费的网站域名查询565wcc
  • 怎么做网站301转向/seo快速排名软件案例
  • 深圳网站建设公司排行/搜索引擎入口网址
  • 银行网站开发技术方案/网站开发公司哪家好
  • 做原油期货关注什么网站/市场营销策划
  • dedecms做的网站_网站中的图片总是被同一ip恶意点击/品牌关键词优化哪家便宜
  • 会网站建设好吗/什么是seo站内优化
  • 邯郸单位网站建设/嘉兴seo排名外包
  • 深圳建设管理中心网站/网站seo检测工具
  • 网站不收录/互联网优化是什么意思
  • wordpress 二维码插件下载地址/seo营销推广多少钱