互联网装修公司加盟,优化网站的公司哪家好,asp.net网站开发简明教程,网站模板前台后台1、开闭原则#xff08;Open Close Principle#xff09; 开闭原则的意思是#xff1a;对扩展开放#xff0c;对修改关闭。在程序需要进行拓展的时候#xff0c;不能去修改原有的代 码#xff0c;实现一个热插拔的效果。简言之#xff0c;是为了使程序的扩展性好…1、开闭原则Open Close Principle 开闭原则的意思是对扩展开放对修改关闭。在程序需要进行拓展的时候不能去修改原有的代 码实现一个热插拔的效果。简言之是为了使程序的扩展性好易于维护和升级。想要达到这样的效果我们需要使用接口和抽象类后面的具体设计中我们会提到这点。 接口定义了一组抽象方法但没有具体的实现。 // 接口定义
interface Drawable {void draw(); // 接口中的方法默认为抽象方法
}class Circle implements Drawable {Overridepublic void draw() {System.out.println(Drawing a circle);}
}class Rectangle implements Drawable {Overridepublic void draw() {System.out.println(Drawing a rectangle);}
} 抽象类 // 抽象类定义
abstract class Shape {abstract void draw(); // 抽象类中可以有抽象方法
}class Circle extends Shape {Overridevoid draw() {System.out.println(Drawing a circle);}
}class Rectangle extends Shape {Overridevoid draw() {System.out.println(Drawing a rectangle);}
} 2、里氏代换原则Liskov Substitution Principle 里氏代换原则是面向对象设计的基本原则之一。 里氏代换原则中说任何基类可以出现的地方子类一定可以出现。LSP 是继承复用的基石只有当派生类可以替换掉基类且软件单位的功能不受到影响时基类才能真正被复用而派生类也能够在基类的基础上增加新的行为。里氏代换原则是对开闭原则的补充。实现开闭原则的关键步骤就是抽象化而基类与子类的继承关系就是抽象化的具体实现所以里氏代换原则是对实现抽象化的具体步骤的规范。 基类 基类是一个通用的抽象类它定义了共同的属性和方法用于派生子类。基类通常包含程序的核心逻辑但它也可以包含一些抽象方法供子类实现。 示例参考上述抽象类定义Shape子类 子类是基类的直接扩展它继承了基类的属性和方法并可以添加新的属性和方法。子类通常用于具体化基类的行为。 示例 // 基类 Shape 定义了计算面积的方法
public abstract class Shape {public abstract double getArea();
}// 子类 Rectangle 继承自 Shape具体实现了计算矩形面积的方法
public class Rectangle extends Shape {private double width;private double height;public Rectangle(double width, double height) {this.width width;this.height height;}Overridepublic double getArea() {return width * height;}
} 派生类 派生类是子类的扩展它继承了子类的属性和方法并可以进一步添加新的属性和方法。派生类的关系可以延续下去形成继承层次结构 示例 // 派生类 Square 继承自 Rectangle实现正方形的计算面积方法
public class Square extends Rectangle {public Square(double side) {super(side, side);}
}3、依赖倒转原则Dependence Inversion Principle 这个原则是开闭原则的基础具体内容针对对接口编程依赖于抽象而不依赖于具体。 4、接口隔离原则Interface Segregation Principle 这个原则的意思是使用多个隔离的接口比使用单个接口要好。它还有另外一个意思是降低类之间的耦合度。由此可见其实设计模式就是从大型软件架构出发、便于升级和维护的软件设计思想它强调降低依赖降低耦合。 5、迪米特法则又称最少知道原则Demeter Principle 最少知道原则是指一个实体应当尽量少地与其他实体之间发生相互作用使得系统功能模块相对独立。 实体对象
6、合成复用原则Composite Reuse Principle 合成复用原则是指尽量使用合成 / 聚合的方式而不是使用继承。 合成 合成是一种通过将现有类的实例作为新类的成员来实现代码复用的机制。新类可以使用现有类的功能但不继承现有类的行为。这种方式降低了类之间的耦合度使系统更加灵活。 示例 class Engine {void start() {// 启动引擎}
}class Car {private Engine engine;Car() {engine new Engine();}void startCar() {engine.start();// 启动车辆}
}聚合 聚合是一种特殊的合成其中一个类表示整体而另一个类表示部分。部分对象可以存在独立于整体对象但它们通常会关联在一起。聚合关系比合成关系更松散允许部分对象独立存在。 示例 class Department {// 部门相关信息
}class Company {private ListDepartment departments;Company() {departments new ArrayList();}void addDepartment(Department department) {departments.add(department);}
}继承 继承是一种通过从已有类派生新类的方式来实现代码复用的机制。派生类继承了基类的属性和方法可以通过重写方法来修改或扩展其行为。继承是一种强耦合的机制因为它将派生类与基类紧密联系在一起 示例 class Vehicle {void start() {// 启动车辆}
}class Car extends Vehicle {void openRoof() {// 打开车顶}
}