首页 > 代码库 > 学习高焕堂老师的 《简单的黑箱框架模式》笔记总结
学习高焕堂老师的 《简单的黑箱框架模式》笔记总结
没事开始学一些框架的东西,做开发不能老装逼,只知道搞api 搞demo,看点装逼的框架那才更装逼。
一般我们习惯用白箱的设计模式(简单点说就是继承关系 扩展 父类 抽象 )不过高老师说,还可以用黑箱的设计模式。
具体业务如下:
学生、大学生、研究生。都有学费的计算标准,都有姓名这个属性。那么如何设计一套标准来定义他们,方便他们扩展使用呢?我们通用的做法,就是 定义基类。定义一个基类,这个基类有个抽象的方法,就是计算学费的方法。具体谁继承我,谁去实现学费是多少。那么这种设计模式就是白箱设计模式。如果用黑箱实现呢?(黑箱的实际意义我也不是很懂。就是控制翻转,好像有更大的灵活性,具体不是非常清楚)先定义一个接口就是计算学费的接口。
public interface ITuition { /** * * getValue(得到具体学费) * * @return float 返回具体学费;; * @exception * * @since 1.0.0 */ // ITuition 计算学费的接口 ;;;;tuitio是学费的意思 I 是Interface ITuition 计算学费的接口 // lixiaodaoaaa public float getValue(); }
再把学生类定义出来(基类定义出来)
public class Stutent { private String name; private ITuition tuition;// 每种学生必须有一种计算学费的标准;; /** * * * @param tuition * 传递一个 计算学费的标准;; void */ public void Setter(ITuition tuition) { this.tuition = tuition; } // 具体计算学费有接口实现吧 我才不管呢;;; public float computerTuition() { return tuition.getValue(); } }
然后我们看调用结果(不需要 new实际的大学生、研究生对象)
public class MainITuition { public static void main(String[] args) { Stutent s1 = new Stutent(); Stutent s2 = new Stutent(); DaxueshengItuition daxueItuition = new DaxueshengItuition(); YanjiushengTuition yanjiuItuition = new YanjiushengTuition(); s1.Setter(daxueItuition); s2.Setter(yanjiuItuition); System.out.println(s1.computerTuition() + ""); System.out.println(s2.computerTuition() + ""); } }
总结下,有点糊里糊涂,不过还算明白一点点。就是黑箱比较难以理解。
欢迎你指正。闪,瞌睡了。。不是很懂。
学习高焕堂老师的 《简单的黑箱框架模式》笔记总结
声明:以上内容来自用户投稿及互联网公开渠道收集整理发布,本网站不拥有所有权,未作人工编辑处理,也不承担相关法律责任,若内容有误或涉及侵权可进行投诉: 投诉/举报 工作人员会在5个工作日内联系你,一经查实,本站将立刻删除涉嫌侵权内容。