diff --git a/docs/design_guide.md b/docs/design_guide.md new file mode 100644 index 0000000..c6c76b4 --- /dev/null +++ b/docs/design_guide.md @@ -0,0 +1,23 @@ +# 重写或继承的选择 + +* 什么时候选择继承? + +通常是这个类在原产品代码中,就是作为核心通用类,比如UIButton,这种我们就只需要在FineKit中继承 +```java +com.fr.design.gui.ibutton.UIButton +``` +实现一个对外开放的按钮类 +```java +com.fanruan.api.design.ui.component.UIButton + +``` + +这种方式适用于父类会被大量修改的可能性很小的情况。 + +* 什么时候选择重写? + +通常是和业务相关性比较紧密的类,比如ConnectionComboBoxPanel,该类用于选择在数据集界面中选择数据连接,属于一个业务类, +这种情况我们就不选择继承,而是重新在FineKit中实现一个全新的开放类 +```java +com.fanruan.api.design.work.onnectionComboBoxPanel +``` diff --git a/readme.md b/readme.md index 19d40c3..6bf83e8 100644 --- a/readme.md +++ b/readme.md @@ -36,6 +36,8 @@ SessionKit#getSession(@NotNull String sessionID); [命名和设计规范](docs/name.md) +[重写还是继承](docs/design_guide.md) + ## 开发接口文档 [开放接口文档](docs/fun/total.md)