开闭原则(OCP)
定义
开闭原则(Open-Closed Principle, OCP) :一个软件实体如类、模块和函数应当对扩展开放,对修改关闭。即软件实体应尽量在不修改原有代码的情况下进行扩展。 用抽象构建框架,用实现扩展细节。 优点:提高软件系统的可复用性和可维护性。
实现开闭原则的核心思想,就是面向抽象继承。
Golang Demo
package openclose
type CourseInterface interface {
GetID() int
GetName() string
GetPrice() float32
}package openclose
type JavaCourse struct {
id int
name string
price float32
}
func NewJavaCourse(id int, name string, price float32) *JavaCourse {
return &JavaCourse{id: id, name: name, price: price}
}
func (j *JavaCourse) GetID() int {
return j.id
}
func (j *JavaCourse) GetName() string {
return j.name
}
func (j *JavaCourse) GetPrice() float32 {
return j.price
}Java Demo
UML

总结
从上面两个Demo 中,我们还能看出一个Java 和 Golang 的区别。Java中,虽然用子类示例化了接口,但是在使用子类的方法时,还是需要将接口转成子类,而Golang中没有这种要求。
补充另一个版本的Java/Scala Demo 以及源码解析
Java Demo_
Scala Demo
UML_
源码解析
Last updated
Was this helpful?