`
lwbbupt
  • 浏览: 35171 次
  • 性别: Icon_minigender_1
  • 来自: 北京
社区版块
存档分类
最新评论

java设计模式——设计基本原则

阅读更多

设计原则一:找出应用中可能需要变化的部分,把它们独立出来,不要和不需要变化的代码混在一起。
         当我们的需求改变时,需要修改某一部分的代码,可以将这一部分的代码抽取出来,如果以后再次发生变化,可以只修改抽取出来的代码,而不必修改其他的代码。
设计原则二:针对接口编程,而不是针对实现编程。
        利用java中多态的特性,针对超类型的编程,而不必关心具体执行时真正对象的类型。

设计原则三:为了交互对象之间的松耦合设计而努力。

        松耦合设计,指我们在需要修改一些模块时,不会对其他模块产生影响。

设计原则四:类应该对扩展开发,对修改关闭

 

设计原则五:最少知识原则,不要让太多类耦合在一起

               就任何对象而言,在该对象的方法内,我们只应该调用属于以下范围的方法:该对象本身的方法;被当做方法的参数传递进来的对象;此方法所创建或实例化的任何对象;对象的任何组件。

      


eg:

 

 

/**
* Created by lwb on 2014/11/16.
*/
public abstract class Duck {
    FlyBehavior flyBehavior;
    public void fly() {
        flyBehavior.fly();
    } //针对接口编程,并不关心具体的实现类。同时将需求中需要变化的代码抽离了出去。

    public void setFlyBehavior(FlyBehavior flyBehavior) {
        this.flyBehavior = flyBehavior;
    }

    public void swim(){
        System.out.println("All ducks can swim...");
    }
}
public class MallardDuck extends Duck {

}

public interface FlyBehavior {
    public void fly();
}


public class FlyWithWings  implements FlyBehavior{

    @Override
    public void fly() {
        System.out.println("I'm flying...");
    }
}

public class Cannotfly implements FlyBehavior {

    @Override
    public void fly() {
        System.out.println("I cannot fly...");
    }
}



public class MiniDuckSimulator {
    public static void main(String[] args) {
        MallardDuck mallardDuck = new MallardDuck();
        mallardDuck.setFlyBehavior(new FlyWithWings());//动态的指定飞行的方式
        mallardDuck.fly();
        mallardDuck.swim();
    }
}

 

  • 大小: 27.7 KB
1
2
分享到:
评论
4 楼 lwbbupt 2014-11-17  
come_for_dream 写道
谢谢分享,我也在学习设计模式


是的,最近也在学习,一起坚持学玩吧
3 楼 come_for_dream 2014-11-16  
谢谢分享,我也在学习设计模式
2 楼 yidao620c 2014-11-16  
come_for_dream 写道
问下图是用什么工具画的

intellij idea自带的UML工具
1 楼 come_for_dream 2014-11-16  
问下图是用什么工具画的

相关推荐

    设计模式——GoF的23中设计模式幽默案例解析

    设计模式——GoF的23中设计模式幽默案例解析

    设计模式——JAVA.docx

    JAVA设计模式总结之23种设计模式 一:设计模式之六大原则 总原则:开闭原则(Open Close Principle) 开闭原则就是说对扩展开放,对修改关闭。 1.Abstract Factory(抽象工厂模式) 2.Adapter(适配器模式)......

    Java设计模式——工厂设计模式

    面向对象设计的基本原则: OCP(开闭原则,Open-Closed Principle):一个软件的实体应当对扩展开放,对修改关闭。 DIP(依赖倒转原则,Dependence Inversion Principle):要针对接口编程,不要针对实现编程。 LoD...

    Java设计模式 版本2

    Java设计模式,目录:前言,UML建模技术,深入浅出UML类图,从招式与内功谈起——设计模式概述,面向对象设计原则,工厂三兄弟之简单工厂模式,工厂三兄弟之工厂方法模式,工厂三兄弟之抽象工厂模式,确保对象的唯一...

    java设计模式——单例模式

    今天给大家带来的是23种设计模式的第一种——单例模式。前天写的第一篇文章设计模式的七大原则,是我第一次写文章,目前看了浏览量,让我信心大增。文章有什么讲述方式不对的欢迎大家随时给我私信。24小时恭候!!...

    java设计模式

    目录: 前 言 第一部分 大旗不挥,谁敢冲锋——热身篇 第1章 单一职责原则 1.1 我是“牛”类,我可以担任多职吗 1.2 绝杀技,打破你的传统思维 1.3 我单纯,所以我快乐 1.4 最佳实践 ...附录:23个设计模式

    设计模式精解 译者:熊节 程序员必看书籍之一 part2

    本书从一个新的视角描述面向对象设计,将面向中对象编程的原则与运用设计模式力量创建健壮、可靠的软件开发环境结合起来。书中采用实用、恰当的例子,指导读者用模式解决普通的编程问题,并且解释现代软件设计模式的...

    kunlingou#lifealien#Java-一览设计模式1

    软件设计模式概述GoF 的 23 种设计模式的分类和功能UML中的类图及类图之间的关系开闭原则——面向对象设计原则里氏替换原则——面向对象设计原则依赖倒置原则—

    design-pattern-java.pdf

    基础知识 基础知识设计模式概述 从招式与内功谈起——设计模式概述(一) 从招式与内功谈起——设计模式概述(二) 从招式与内功谈起——设计模式概述(三) 面向对象设计原则 面向对象设计原则之单一职责原则 面向...

    java高手真经 (UML建模+设计模式+面向服务架构) 卷6

    综合实例——Bug管理系统 (3)设计模式样例(24个讲解样例程序) pattern/src/principle/liskovsubstitution//10.3.2里氏代换原则 pattern/src/creation/factorymethod //11.1工厂方法模式 pattern/src/creation/...

    设计模式Demo

    二、设计模式的六大原则 1、开闭原则(Open Close Principle) 开闭原则就是说对扩展开放,对修改关闭。在程序需要进行拓展的时候,不能去修改原有的代码,实现一个热插拔的效果。所以一句话概括就是:为了使程序...

    《Java开发实战经典》——学习攻略

    并可以灵活的运用这些概念进行程序的分析,可以说在整个JAVA SE部分核心就是面向对象的开发,里面涉及的概念较多,但是所有的概念最终都是为接口和抽象类服务的,而所有JAVA开发中涉及到的各个设计模式,实际上也是...

    java高手真经 (UML建模+设计模式+面向服务架构) 卷8

    综合实例——Bug管理系统 (3)设计模式样例(24个讲解样例程序) pattern/src/principle/liskovsubstitution//10.3.2里氏代换原则 pattern/src/creation/factorymethod //11.1工厂方法模式 pattern/src/creation/...

    java高手真经 (UML建模+设计模式+面向服务架构) 卷3

    (3)设计模式样例(24个讲解样例程序) pattern/src/principle/liskovsubstitution//10.3.2里氏代换原则 pattern/src/creation/factorymethod //11.1工厂方法模式 pattern/src/creation/abstractfactory //11.2抽象...

    《HeadFirst设计模式》学习伴侣

    你不想重新发明轮子(或者更差的是,漏气的轮子),所以你从设计模式中寻求协助——设计模式是过去人们面对同样的软件设计问题所学来的经验。有了设计模式,你就可以利用他人实践经验的精华,省下的时间可以用在……...

    敏捷软件开发——原则、模式与实践

    在这本书中,享誉全球的软件开发专家和软件工程大师Robert C.Martin将向您展示如何解决软件开发人员、项目经理及软件项目领导们所面临的最棘手的问题。... ·重点讲述了如何使用UML和设计模式解决面向客户系统的问题

    java高手真经 (UML建模+设计模式+面向服务架构) 卷1

    (3)设计模式样例(24个讲解样例程序) pattern/src/principle/liskovsubstitution//10.3.2里氏代换原则 pattern/src/creation/factorymethod //11.1工厂方法模式 pattern/src/creation/abstractfactory //11.2抽象...

    java高手真经 (UML建模+设计模式+面向服务架构) 卷9

    综合实例——Bug管理系统 (3)设计模式样例(24个讲解样例程序) pattern/src/principle/liskovsubstitution//10.3.2里氏代换原则 pattern/src/creation/factorymethod //11.1工厂方法模式 pattern/src/creation/...

    java高手真经 (UML建模+设计模式+面向服务架构) 卷10

    综合实例——Bug管理系统 (3)设计模式样例(24个讲解样例程序) pattern/src/principle/liskovsubstitution//10.3.2里氏代换原则 pattern/src/creation/factorymethod //11.1工厂方法模式 pattern/src/creation/...

Global site tag (gtag.js) - Google Analytics