![](https://img-blog.csdnimg.cn/20201014180756922.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
软件工程
Ada大侦探
每天都有奇迹发生!
展开
-
TEMPLATE METHOD模式和STRATEGY模式:继承与委托
TEMPLATE METHOD模式和STRATEGY模式:继承与委托一、概念业精于勤“优先使用对象组合(Object composition)而不是类继承(class inheritance)”TEMPLATE METHOD模式:使用继承来解决问题STRATEGY模式:使用委托来解决问题二、理解TEMPLATE METHOD模式基本主循环结构经常会用到Initialize();while(!done())//main loop{ Idle();//do something use原创 2021-10-23 15:43:11 · 69 阅读 · 0 评论 -
COMMAND模式
一、概念没有人天生就具有命令他人的权力。大多数类都是一组方法和相应的一组变量的结合。COMMAND模式不是这样的。它只是封装了一个没有任何变量的函数。public interface Command{ public void do();}二、COMMAND的常见用法 除了上述的do()方法,还有一个就是创建和执行事务操作,一说起事务马上就会联系到数据库。 undo()方法,COMMAND模式中的do()方法可以记住它所执行的操作的细节,那么undo()方法就可以取消这些操作,并把系原创 2021-10-26 00:15:00 · 77 阅读 · 0 评论 -
依赖倒置原则
一、概念 依赖倒转原则(Dependency Inversion Principle, DIP):抽象不应该依赖于细节,细节应当依赖于抽象。换言之,要针对接口编程,而不是针对实现编程。二、理解 依赖倒转原则要求我们在程序代码中传递参数时或在关联关系中,尽量引用层次高的抽象层类,即使用接口和抽象类进行变量类型声明、参数类型声明、方法返回类型声明,以及数据类型的转换等,而不要用具体类来做这些事情。 开闭原则是目标,里氏代换原则是基础,依赖倒转原则是手段倒置的接口所有权: Hollywood原创 2021-10-28 00:15:00 · 134 阅读 · 0 评论 -
Liskov原则
扩展里氏代换原则以Barbara Liskov(芭芭拉·利斯科夫)教授的姓氏命名。芭芭拉·利斯科夫:美国计算机科学家,2008年图灵奖得主,2004年约翰·冯诺依曼奖得主,美国工程院院士,美国艺术与科学院院士,美国计算机协会会士,麻省理工学院电子电气与计算机科学系教授,美国第一位计算机科学女博士。原创 2021-10-22 13:53:55 · 257 阅读 · 0 评论 -
OCP原则
一、概念 The Open Close Priciple 软件实体(类、模块、函数等等)应该是可以扩展的,但是不可修改的。二、理解 任何软件都需要面临一个很重要的问题,即他们的需求会随时间的变化而变化,当软件系统需要面对新的需求时,我们应该尽量保证系统的设计框架时稳定的。抽象化时开闭原则的关键。开放,通过抽象封闭,不可修改,接口,底层来实现接口,高层依赖于接口获得封闭性的方法:1.使用抽象获得显示封闭2.使用“数据驱动”的方法获得封闭性三、意义增加灵活性、可重用性、可维护性原创 2021-10-27 00:00:00 · 98 阅读 · 0 评论 -
SRP原则
一、概念The Single Responsibity Priciple就一个类而言,应该仅有一个引起它变化的原因。一个类只负责一个功能领域中的相应职责。二、理解一个类不能太“累”!太累效率就会低,可复用性较低,比如说我们的路由器,它只需要知道这个数据从哪来到哪去就够了,如果再让他查看里面有什么内容,是否出错,就将这一部分的时间浪费了,降低了效率。下面通过一个简单实例来进一步分析单一职责原则:现使用单一职责原则对其进行重构。在图1中,CustomerDataChart类承担了太多的职责,既包原创 2021-10-28 07:00:00 · 185 阅读 · 0 评论