重构java基础

重构java基础目录 代码重构 设计模式 单例模式 Singleton 工厂方法模式 Factory 重构 java 基础 Method 观察者模式 Observer 代码重构 代码重构和设计模式是软件工程中两个重要的概念 它们有助于提高代码的可读性 可维护性和可扩展性 在本节中 我们将简要介绍代码重构的基本方法和一些常用的设计模式 代码重构是在不改变软件外部行为的前提下 改进软件内部结构的过程

大家好,我是讯享网,很高兴认识大家。



代码重构

代码重构和设计模式是软件工程中两个重要的概念,它们有助于提高代码的可读性、可维护性和可扩展性。在本节中,我们将简要介绍代码重构的基本方法和一些常用的设计模式。

代码重构是在不改变软件外部行为的前提下,改进软件内部结构的过程。以下是一些常见的重构方法:

  • 提取方法(Extract Method):将一段复杂的代码提取到一个新的方法中。
  • 内联方法(Inline Method):将一个简单的方法的实现直接替换到调用它的地方。
  • 提取类(Extract Class):将一个类的部分功能提取到一个新的类中。
  • 合并类(Merge Class):将两个类的功能合并到一个类中。
  • 重命名(Rename):为变量、方法或类选择更有意义的名称。

在进行代码重构时,请务必编写并运行测试用例,确保重构后的代码行为与重构前一致。

设计模式

设计模式是在面向对象软件设计中反复出现的一类问题的通用解决方案。以下是一些常用的设计模式:

单例模式(Singleton)

单例模式确保一个类只有一个实例,并提供一个全局访问点。以下是一个单例模式的实现:

public class Singleton { private static final Singleton INSTANCE = new Singleton(); private Singleton() { } public static Singleton getInstance() { return INSTANCE; } }
讯享网

工厂方法模式(Factory Method)

工厂方法模式定义了一个创建对象的接口,让子类决定实例化哪个类。以下是一个工厂方法模式的例子:

讯享网public interface Animal { void speak(); } public class Dog implements Animal { @Override public void speak() { System.out.println("Woof!"); } } public class Cat implements Animal { @Override public void speak() { System.out.println("Meow!"); } } public abstract class AnimalFactory { public abstract Animal createAnimal(); public static AnimalFactory createFactory(String type) { if ("dog".equalsIgnoreCase(type)) { return new DogFactory(); } else if ("cat".equalsIgnoreCase(type)) { return new CatFactory(); } throw new IllegalArgumentException("Invalid type: " + type); } } public class DogFactory extends AnimalFactory { @Override public Animal createAnimal() { return new Dog(); } } public class CatFactory extends AnimalFactory { @Override public Animal createAnimal() { return new Cat(); } }

使用工厂方法模式的代码:

public class Main { public static void main(String[] args) { AnimalFactory factory = AnimalFactory.createFactory("dog"); Animal animal = factory.createAnimal(); animal.speak(); // 输出 "Woof!" } }

观察者模式(Observer)

观察者模式定义了一种一对多的依赖关系,让多个观察者对象同时监听某个主题对象,当主题对象发生变化时,通知所有观察者。

讯享网public interface Observer { void update(String message); } public class ConcreteObserver implements Observer { private String name; public ConcreteObserver(String name) { this.name = name; } @Override public void update(String message) { System.out.println(name + " received message: " + message); } } public interface Subject { void registerObserver(Observer observer); void unregisterObserver(Observer observer); void notifyObservers(String message); } public class ConcreteSubject implements Subject { private List<Observer> observers = new ArrayList<>(); @Override public void registerObserver(Observer observer) { observers.add(observer); } @Override public void unregisterObserver(Observer observer) { observers.remove(observer); } @Override public void notifyObservers(String message) { for (Observer observer : observers) { observer.update(message); } } }

使用观察者模式的代码:

public class Main { public static void main(String[] args) { ConcreteSubject subject = new ConcreteSubject(); Observer observer1 = new ConcreteObserver("Observer 1"); Observer observer2 = new ConcreteObserver("Observer 2"); subject.registerObserver(observer1); subject.registerObserver(observer2); subject.notifyObservers("Hello, World!"); // 输出 "Observer 1 received message: Hello, World!" 和 "Observer 2 received message: Hello, World!" } }
小讯
上一篇 2024-12-31 10:06
下一篇 2024-12-24 18:16

相关推荐

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容,请联系我们,一经查实,本站将立刻删除。
如需转载请保留出处:https://51itzy.com/kjqy/8856.html