在Java中,代码复用有三种主要的实现方式:继承、接口和组合。
继承是指一个类从另一个类中继承方法和属性的过程。子类可以继承父类中的所有非私有方法和属性,子类可以利用继承来扩展父类的功能。例如:
class Animal {
void move() {
System.out.println("动物可以移动");
class Dog extends Animal {
void bark() {
System.out.println("狗可以叫");
public class TestAnimal {
public static void main(String[] args) {
Dog dog = new Dog();
dog.move();
dog.bark();
接口是指定义一组方法的集合,没有方法体,只定义方法名,以及方法的参数和返回值类型。类可以实现接口,实现接口的类必须重写接口中定义的所有方法。接口可以实现多继承,因为一个类可以实现多个接口。例如:
interface Animal {
void move();
interface Barkable {
void bark();
class Dog implements Animal, Barkable {
public void move() {
System.out.println("狗可以移动");
public void bark() {
System.out.println("狗可以叫");
public class TestAnimal {
public static void main(String[] args) {
Dog dog = new Dog();
dog.move();
dog.bark();
组合是指在一个类里面创建一个或多个其他类的实例变量,并提供公共接口代理访问这些实例变量。通常情况下,一个类中需要其他类的功能,可以通过组合的方式,将需要的类的实例作为组合类的成员变量,从而达到代码复用的目的。例如:
class Engine {
void start() {
System.out.println("发动机启动");
class Car {
private Engine engine = new Engine();
void start() {
engine.start();
public class TestCar {
public static void main(String[] args) {
Car car = new Car();
car.start();
无论是继承、接口还是组合,它们都是Java中的代码复用机制。使用这些机制可以方便地复用已有的代码,减少代码编写量,并提高代码的可维护性和可重用性。初学Java时需要注意避免过度使用继承、接口与组合,以免程序变得过于复杂和难以维护。
编写代码最重要一条,是怎样复用其他程序员的代码和思路来解决问题。
通过修改他人的代码来解决复杂问题是种错误的做法,不仅成功的机率很低,就算成功也不会提供什么经验。按照这种方式进行编程,无法成长为一名真正的程序员,在软件开发领域,前景也是非常有限。
一旦问题达到了一定规模,期望程序员从头开发一个解决方案不太现实,这会导致程序员大量时间浪费在低效率工作中,并且极大地依赖程序员精通各个方面的知识。另外,这种做法也容易导致程序充满缺陷或难以维护。
良好的复用和不良的复用
良好的复用帮助我们编写更好的程序,并
最近的开发工作主要是把某C++业务代码翻译成Lua版本,这个过程相当枯燥,期间吐槽不少这块业务代码的整洁性,在测试Lua版本的业务代码时,因翻译时求快心理,有些复杂算法的翻译出现纰漏,且类似的算法在业务的多处有不同的实现,导致纠正这类算法的时候要多处同步,改完还得多处反复检查有没犯低级语法错误(比如有些变量名是否缺或者多个字符),毕竟编辑Lua脚本的编辑器目前还没有比较完善的语法排错功能。
总之...
2、函数为达成某个目标需要的辅助动作,交给其他类去处理,这样主线会清晰,函数职责分明,更容易解耦。
因此写程序时,每个类的职责就需要关注,如果一个类的职责过多,那么就得考虑拆分。有经验的开发者能在写之前就意识到要进行一定的拆分。
提高代码复用性为维护性的方法有很多,比如继承,构造代码块,循环等等,本文讲的是循环。
当有很多类似的东西时,往往导致代码重复,量大,这时要想到用设计循环的方法来减少重复的代码。
为了成功地设计循环,往往需要用到数组。
要实例化1000个button,每个button上写着不同的字符串,不用循环就会很多重复代码,而且写起来很费时。
JButton bt1 = new
在企业级应用开发中,代码的质量是一个重要的指标,复用性好的代码可以提高开发效率减少不必要的麻烦,也是一种很好的编程习惯,那么有哪些方式可以提升代码的复用性呢?本文将会简要分享一些开发经验。
1、微服务的理念:面向接口编程
首先,作为微服务架构下的开发,肯定是有一个面向接口的思维,微服务的理念就是不同的服务组件之间依靠接口通讯,那么接口的好处是什么呢,这一点我相信学习过Java的朋友都会有了解...
传入日期格式错误“message“: “JSON parse error: Cannot deserialize value of type `java.util.Date` from String
Sunhoy:
OCP开闭原则
CSDN-Ada助手:
依赖倒置原则(DIP)
CSDN-Ada助手:
Java多线程
CSDN-Ada助手: