面向东西编程(OOP)是一种风行的编程范式,它经由过程将数据跟操纵数据的方法封装成东西,从而进步代码的可重用性、可保护性跟可扩大年夜性。在OOP中,计划形式是处理罕见成绩的既定处理打算,它可能帮助开辟者构建高品质、可扩大年夜的代码架构。
计划形式是一套被反复利用、少数人知晓、经过分类编目标、代码计划经验的总结。利用计划形式的目标不是发明出一个符合以后须要的新代码,而是为了可重用代码、让代码更轻易被他人懂得、保证代码坚固性。
计划形式重要分为三大年夜类:
单例形式确保一个类只有一个实例,并供给一个全局拜访点。其核心是私有构造函数,避免外部直接实例化东西。
public class Singleton {
private static Singleton instance;
private Singleton() {}
public static Singleton getInstance() {
if (instance == null) {
instance = new Singleton();
}
return instance;
}
}
工厂方法形式定义一个用于创建东西的接口,让子类决定实例化哪一个类。工厂方法使一个类的实例化耽误到其子类。
public interface Creator {
<T> T create(Class<T> c);
}
public class ConcreteCreator implements Creator {
public <T> T create(Class<T> c) {
return c.cast(new T());
}
}
察看者形式定义东西间的一种一对多的依附关联,当一个东西的状况产生改变时,全部依附于它的东西都掉掉落告诉并主动更新。
public interface Observer {
void update();
}
public class ConcreteObserver implements Observer {
public void update() {
// 更新逻辑
}
}
public class Subject {
private List<Observer> observers = new ArrayList<>();
public void addObserver(Observer observer) {
observers.add(observer);
}
public void notifyObservers() {
for (Observer observer : observers) {
observer.update();
}
}
}
战略形式定义一系列算法,把它们一个个封装起来,并使它们可相互调换。战略形式让算法的变更独破于利用算法的客户。
public interface Strategy {
void execute();
}
public class ConcreteStrategyA implements Strategy {
public void execute() {
// 实现战略A
}
}
public class ConcreteStrategyB implements Strategy {
public void execute() {
// 实现战略B
}
}
装潢者形式静态地给一个东西增加一些额定的职责,就增加功能来说,装潢者形式比生成子类更为机动。
public interface Component {
void operation();
}
public class ConcreteComponent implements Component {
public void operation() {
// 基类操纵
}
}
public class Decorator implements Component {
private Component component;
public Decorator(Component component) {
this.component = component;
}
public void operation() {
component.operation();
// 增加的功能
}
}
计划形式是面向东西编程中非常重要的一部分,它可能帮助开辟者构建高品质、可扩大年夜的代码架构。经由过程深刻懂得各种计划形式,我们可能更好地处理编程中的罕见成绩,进步代码的可保护性跟可扩大年夜性。