java 自定义类名_可以选择自定义类,但可以选择统一的类名

假设您正在构建一个将成为打包产品的Web应用程序,用户希望能够扩展和自定义该应用程序 .

它附带一个核心库,包含包含类的PHP文件:

/library/

/library/frontend.class.php

/library/filesystem.class.php

/library/backend.class.php

现在,假设您要保留用户无法修补的 clean core . 不过,如果需要,您希望用户能够自定义每个螺母和螺栓 .

我目前的想法是创建一个自动加载机制,当一个类被实例化时,首先加载核心包括:

/library/frontend.class.php

然后,它切换到 user 目录并查看是否存在相同名称的包含:

/user/library/frontend.class.php

如果存在,它也包括它 .

显然,用户include必须包含一个类定义,扩展了核心包含中的定义 .

现在我的问题是,我将如何实例化这样的类?毕竟,我总能确定有一个定义:

class frontend_core

但我无法确定是否有

class frontend_user extends frontend_core

但是,我希望能够依赖并实例化 one class name ,无论是否有类的自定义扩展 .

是否有一种聪明的方式,想法或模式如何实现这一目标?

当然,我可以编写一个简单的工厂辅助函数,首先查找 user 类,然后查找 core 类并返回一个初始化对象,但我真的希望尽可能保持清洁和简单,因为正如我所说,它将成为一个包装产品 .

我正在寻找一种使用尽可能少的代码的智能技巧或模式,并尽可能少地引入新功能 .

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值