程序架构设计
本章主要讲解程序设计的设计模式,开发代码过程中代码质量很重要的,包括健壮性、可维护、可扩展、可替换复用等等,比如:开闭原则(对扩展开放,对修改关闭,在不修改现有代码的前提下对程序进行扩展)等等。所以什么场景采用什么设计模式是需要考虑从整体权衡。
那么什么是程序的设计模式呢?
专业的解释是:针对软件开发过程中重复发生的问题的解决方式方法。
因为设计模式并不是万能公式,也不可滥用,归其根本它是解决什么已明确的问题。
工作应用中也不会像查字典一样找哪种设计模式,而是根据场景和问题进行具体设计,有的并不一定对应着GoF那23种,有的也并不仅是单一模式。
模式很多,并不能一一背下来,需要总结一下,归纳一下供参考,希望能帮助到大家。
功能适应设计模式:
Iterator模式——一个一个遍历
分为Iterator对应ConreteIterator,Aggregate对应ConcreteAggregate两种组合角色
很多jdk原生数据结构中有使用到,比如数组链表实现Iterator接口进行迭代遍历方式,其中还涉及到Composite模式、visitor模式、factory Method模式,后面会总结到。
adapter模式——加个适配器进行复用
也被称为wrapper包装器,或者converter类转换器,为了解决需要使用的程序跟现有的程序的差异问题,对类进行继承、用对象进行委托。Client、Target、Adapter、Adaptee四种角色关系。
将Adaptee转换成Target,适用于连接不同的API,填补缝隙或者差异。
交给子类,实现层次化,可扩展
Template Method——将具体处理交给子类
模板方法很好理解,在父类中定义处理流程框架,在子类中实现具体处理,分为AbstractClass、ConcreteClass两种角色,具有一致性和相互协作。在开发工作流引擎上有很适合的采用。
Factory Method——将实例生成交给子类
通过Template Method模式 来构建生成实例的工厂称为Factory Method模式,它是模板的实现。角色分类creator对应p