服用相似问题的相同解决方案。保证了代码的可靠性,是代码的编制真正的工程化,能够适应需求的变化。 里氏替换原则,如果一个软件实体使用一个父类的话,那么一定适用于子类。定义就是子类必须能够替换它的父类。 迪米特法则:他强调的是类之间的松耦合,耦合度越低越有利于复用,一个处在弱耦合的类被修改,不会对有关系的类造成影响。 1.简单工厂模式:将业务逻辑部分和界面逻辑部分分离开来,降低了业务逻辑部分和界面逻辑部分的耦合度,符合面向对象的迪米特法则。 2.工厂模式:定义一个用于创建对象的接口,让子类决定实例化哪一个类。工厂方法使一个类的实例化延迟到了子类。 3.抽象工厂模式;提供一个创建一系列相关或者相互依赖的对象的接口,而无需指定他们具体的类。 4.职责链设计模式(chain of responsibility):使多个对象都有处理请求的机会,从而避免了请求的发送者和接受者之间的耦合关系,将所有的处理对象连成一条链, 并沿着这条链传递请求,直到有一个对象能够处理它为止。 5.单身设计模式:(singleton);保证一个类仅仅有一个实例,并提供一个访问他的全局访问点,通常我们可以让一个全局变量使得一个对象被访问,但他不能防止你 实例化多个对象,一个最好的方法就是,让类自身保护它唯一的实例,这个类可以保证它没有其他的实例被创建,并且它可以提供一个访问该实例的方法。 6.适配器设计模式:(Adapter):讲一个;类的接口转化为客户希望的另一个接口,Adapter模式使得原来接口不兼容而不能一起工作的那些类可以一起工作了。 7.装饰设计模式:(Decorator):动态地给一个对象添加一些额外的职责。即增加功能来说,装饰模式比生成子类更为灵活。 8.代理模式:(Proxy):为其他对象提供一种代理以达到控制这个对象的访问。 9.观察者设计模式:又称发布--订阅模式,定义了一个一对多的依赖关系,让多个观察者对象同时监听某一个主题对象,这个主题对象在状态发生变化时,会通知所有的 观察者对象,使他们能够自动的进行更新。 10.状态设计模式:当一个对象的内在状态发生改变时允许改变其行为,这个对象看起来像是改变了类,状态模式主要解决的是当控制一个对象转换的条件表达式过于复杂的 情况。把状态的判断逻辑转移到表示不同状态的的一系列的类中,可以把复杂的逻辑简化。好处是将特定状态的相关行为局部化,且将不同状态的行为分割开来。 11.命令设计模式:命令设计模式的作用是将一个请求封装成一个对象,从而使我们可以用不同的请求对象进行参数化,对请求排队或者是请求记录日志,以及支持科撤销的 操作,命令模式将调用操作的请求对象与知道如何实现改操作的接受对象解耦, 12.模板设计模式:定义一个算法骨架,而且将一些步骤延迟到子类中,模板方法使得子类可以不改变一个算法的结构即可重新定义算法的特定步骤。 13桥接设计模式;将抽象部分与它的现实部分想分离,使它们可以独立的变化,桥接设计模式可以避免“类爆炸”的情况 14.策略设计模式:定义了一个算法家庭,分别把他们都封装起来,让他们之间可以相互替换,这些算法的替换变化不会影响到使用算法的客户。 15组合设计模式;将对象组合成树的结构以表示“部分--与整体”的的层次结构,组合模式使得单个用户对单个对象的使用具有一致性。 16.原型设计模式:用原型的实例指定创建类的总类,并且通过拷贝这个原型来创建的新的对象。 |
|