多平台统一管理软件接口,如何实现多平台统一管理软件接口
530
2023-03-11
本文目录一览:
抽象类和接口
什么是接口:接口就是一些方法特征的集合------接口是对抽象的抽象。
什么是抽象类:抽象类对某具体类型的部分实现------抽象类是对具体的抽象。
方法特征包括:方法的名字、参数的数目、参数的类型。不包括:返回类型、参数名字、和抛出的异常。
接口是类型转换的前提、是动态调用的保证。实现某一接口就完成了类型的转换(多重继承);动态调用只关心类型,不关心具体类。
--------------------------------------------------------------------------------------------------------------------------------------
JAVA接口(抽象类)用来声明一个新的类型。
JAVA设计师应当主要使用接口和抽象类将软件单位与内部和外部耦合起来。
换言之,应当使用JAVA接口和抽象类而不是具体类进行变量的类型声明、参数的类型声明、方法的返回类型声明、以及数据类型的转换等。
当然一个更好的做法是仅仅使用接口,而不是抽象类来做上面这些事情。
在理想的情况下,一个具体类应当只实现接口和抽象类中声明的方法,而不应当给出多余的方法!
接口和抽象类一般作为一个类型等级结构的起点。
接口比抽象类更为抽象所以优先使用接口声明抽象类型!
--------------------------------------------------------------------------------------------------------------------------------------
抽象类和接口
抽象类仅提供一个类的部分实现。抽象类可以有实例变量、以及一个或多个构造函数。抽象类可以同时又抽象方法和具体方法。
一个抽象类不会有实例,它的构造函数不能被客户端用来创建实例。一个抽象类的构造函数可以被其子类调用,从而使一个抽象类的所有子类可以有一些共同的实现,而不同的子类可以在此基础上有不同的实现。
接口比抽象类更为抽象所以有线使用接口声明抽象类!
抽象类是用来继承的。(具体类不是用来继承的,“只要有可能不要从具体类继承---SCOTT MERYES”)。
抽象类设计原则:
1. 抽象类应当拥有尽可能多的代码!(公用方法)。代码集中于抽象的方向。
2. 抽象类应当拥有尽可能少的数据!(公共属性)。数据集中于具体的方向。
继承复用的使用条件------- PETER COAD条件
1. 子类是超类的一个特殊种类而不是超类的一个角色!正确区分“HAS-A”“IS-A”的关系。
2. 子类之间不应发生替换!?
3. 子类具有扩展超类的责任,而不是置换(OVERRIDE)掉或注销(NULLIFY)掉的责任。
4. 只有在分类学角度上有意义时才可以使用继承,不要从具体类继承。
接口和抽象类的区别:
1. 抽象类可以提供某些方法的实现。如果向抽象类中加入一个新的具体的方法,那么所有的子类一下子就得到了这个方法。接口做不到这一点!(这也许是抽象类的唯一优点)。
2. 因JAVA的单根结构限制,只类只能实现一个抽象类类型,而接口类型这无此限制。这使抽象类作为类型定义工具的效能落后于接口。接口是定义混合类型(实现多从继承)的理想工具:用一个
3. 从代码重构的角度上讲,将一个具体类重构成一个接口的实现是很容易的。
文章来自 haoyu1566的网易博客
一、大约分为三类:
1、创建型模式(5种):工厂方法模式,抽象工厂模式,单例模式,建造者模式,原型模式。
2、结构型模式(7种):适配器模式,装饰器模式,代理模式,外观模式,桥接模式,组合模式,享元模式。
3、行为型模式(11种):策略模式、模板方法模式、观察者模式、迭代子模式、责任链模式、命令模式、备忘录模式、状态模式、访问者模式、中介者模式、解释器模式。
二、设计模式遵循的原则有6个:
1、开闭原则(OpenClosePrinciple)
对扩展开放,对修改关闭。
2、里氏代换原则(LiskovSubstitutionPrinciple)
只有当衍生类可以替换掉基类,软件单位的功能不受到影响时,基类才能真正被复用,而衍生类也能够在基类的基础上增加新的行为。
3、依赖倒转原则(DependenceInversionPrinciple)
这个是开闭原则的基础,对接口编程,依赖于抽象而不依赖于具体。
4、接口隔离原则(InterfaceSegregationPrinciple)
使用多个隔离的借口来降低耦合度。
5、迪米特法则(最少知道原则)(DemeterPrinciple)
一个实体应当尽量少的与其他实体之间发生相互作用,使得系统功能模块相对独立。
6、合成复用原则(CompositeReusePrinciple)
原则是尽量使用合成/聚合的方式,而不是使用继承。继承实际上破坏了类的封装性,超类的方法可能会被子类修改。
java接口java接口设计原则:
1、Java语言中存在java接口设计原则的结构java接口设计原则,有特定的语法和结构。
2、Java语言中一个类所具有的方法的特征集合,是一种逻辑上的抽象。
java接口作用:
1、利于代码的规范
这样做的目的一方面是为了给开发人员一个清晰的指示,告诉java接口设计原则他们哪些业务需要实现;同时也能防止由于开发人员随意命名而导致的命名不清晰和代码混乱,影响开发效率。
2、有利于对代码进行维护
可以一开始定义一个接口,把功能菜单放在接口里,然后定义类时实现这个接口,以后要换的话只不过是引用另一个类而已,这样就达到维护、拓展的方便性。
3、保证代码的安全和严密
一个好的程序一定符合高内聚低耦合的特征,能够让系统的功能较好地实现,而不涉及任何具体的实现细节。这样就比较安全、严密一些,这一思想一般在软件开发中较为常见。
扩展资料:
关于java接口的使用规范:
1、接口中可以定义常量,不能定义变量,接口中的属性都是全局静态常量,接口中的常量必须在定义时指定初始值。
2、 接口中所有的方法都是抽象方法,接口中方法都会自动用public abstract 修饰,即接口中只有全局抽象方法。
3、 接口不能实例化,接口中不能有构造。
4、 接口之间可以通过extends实现继承关系,一个接口可以继承多个接口,但接口不能继承类。
5、 接口的实现类必须实现接口的全部方法,否则必须定义为抽象类。
参考资料来源:百度百科:java接口
Java语法中,接口可以继承接口,抽象类可以实现接口,抽象类可以继承实体类。
Java语法中,使用interface定义一个接口,使用class定义一个类,使用关键字abstract+class定义一个抽象类。以下分别对这3个知识点进行解析:
1、接口可以继承接口
接口可以多继承接口,例如:Interface1ExtendsInterface2,Interface3,Interface4??
代码示例为:
publicinterfaceInterface1{
publicvoidmethod1();
}
publicinterfaceInterface2extendsInterface1{
publicvoidmethod2();
}
publicinterfaceInterface3extendsInterface1,Interface2{
publicvoidmethod3();
}
2、抽象类可以实现接口
抽象类实现接口时,可以完全重写或覆盖接口中的方法,也可只重写接口中的部分方法。
代码示例为:
publicinterfaceInterfaceA{
publicvoidmethod1();
publicvoidmethod2();
publicvoidmethod3();
}
abstractclassClassAimplementsInterfaceA{
publicvoidmethod1(){}
publicvoidmethod2(){}
}
3、抽象类可以继承实体类
抽象类可以继承实体类,但前提是实体类必须有明确的构造函数。
代码示例为:
classEntityA{
publicEntityA(){
//构造函数
}
publicvoidhelloWorld(){
System.out.println("hello");
}
}
abstractclassClassAextendsEntityA{}
扩展资料:
1、Java继承或实现接口时需要遵循的原则:
(1)类优先于接口。如果一个子类继承的父类和接口有相同的方法实现。那么子类继承父类的方法。
(2)子类型中的方法优先于父类型中的方法。
(3)如果以上条件都不满足,则必须显示覆盖/实现其方法,或者声明成abstract。
2、Java实现多继承的方式:
(1)Java中一个类不能继承多个具体class。
(2)一个类只可继承自一个具体class,但可实现多个接口。interface不涉及到实现细节,不与任何存储空间有关连。新类可继承自一个具象class,其余继承都得是interfaces。
(3)outerclass不可继承自多个具体class,可在其内部设多个innerclass,每个innerclass都能各自继承某一实现类。innerclass不受限于outerclass是否已经继承自某一实现类。
(4)innerclass可以说是多重继承问题的完整解决方案。一个类不能继承自多个一般类。但我们可以让其内部的多个innerclass各自继承某一实现类达到类似的目的。
参考资料来源:Java官方文档-接口(interface)
版权声明:本文内容由网络用户投稿,版权归原作者所有,本站不拥有其著作权,亦不承担相应法律责任。如果您发现本站中有涉嫌抄袭或描述失实的内容,请联系我们jiasou666@gmail.com 处理,核实后本网站将在24小时内删除侵权内容。
发表评论
暂时没有评论,来抢沙发吧~