java外围设计_Java 编程(23 种设计模式)
简介
在一般的程序开发过程中,初中级程序员接触的程序设计模式是比较少的。最常见的可能就是单例模式、工厂模式、抽象工厂模式等等,但实际上程序中的设计模式是非常多的,具体可以分为 23 种设计模式。设计模式并不是 Java 语言所特有的,而是编程人员在开发过程中总结出来的便于程序开发的固有的设计模式。本篇 Chat 将使用 Java 语言对 23 种设计模式展开介绍、并且通过逻辑关系图以及使用 Java 语言列举示例的方式来对每种设计模式进行相关的说明。
设计模式原则说明
开闭原则
开闭原则指的是对于程序或是代码块必须具有可扩展性,在现有框架或接口的基础上进行而不能直接修改原有的代码框架。为了提高程序的可扩展性, Java 编程也提出面向接口的编程方式,因此在日常开发中也比较提倡面向接口编程的开发方式。
最少知道原则
最少知道原则是相对于对象而言,是说一个对象应该尽可能的与其他对象之间保持相对的独立,降低其对象之间的耦合性,进而也可以提高对象的可扩展性。在我们的编程生涯中接触到的最重要的思想也就是“高内聚、低耦合”也是遵循的这样的原则。因此,在业务处理设计的时候,特别是实体类的创建等一定要注意最少知道原则。
接口隔离原则
接口隔离的原则宗旨是降低接口之间的耦合性,减少接口之间的依赖等。在编程中,为了软件的升级和以后的运维工作应该增加多个接口进行隔离,不能将不同的业务逻辑添加到一个接口中进行操作。
依赖倒置原则
依赖倒置原则是指在类对象设计的过程中,尽量依赖抽象或是接口类。一般情况下,不要依赖实现类或是实体对象,在设计时可以通过依赖接口或是抽象类来降低对象之间的耦合性。由于此原则不好进行书面叙述,下面通过一组代码示例来进行说明。
首先,我们来创建一个抽象示例:
abstract class Animal {
public abstract String test();
}
创建一个 Cat 类继承自 Animal:
public class Cat extends Animal{
@Override
public String test() {
// TODO Auto-generated method stub
return "cat eating folds";
}
}
创建一个 Dog 类继承自 Animal:
public class Dog extends Animal{
@Override
public String test() {
// TODO Auto-generated method stub
return "dog eating flods";
}
}
通过 main 方法调用:
public static void main(String[] args) {
test(new Cat());
test(new Dog());
}
public static void test(Animal animal) {
System.out.println(animal.test());
}
通过上面的示例可以看出,我们在调用某个类方法时可以通过外围的实例确定调用的是哪个对象方法就可以防止内部方法写成固定的,从而也降低了对象对象的耦合性。
java外围设计_Java 编程(23 种设计模式)相关推荐
- java七大设计原则,23种设计模式
点击查看七大设计原则,23种设计模式 其中 简单工厂.工厂方法.抽象工厂 三种工厂模式中的工厂类的作用基本都是:根据传入的参数创建对应的对象,如果创建的种类太多,那么 简单工厂要写很多 if - el ...
- JAVA六大设计原则 和 23种设计模式
相关书籍:<大话设计模式>.<Java设计模式>.<设计模式之禅>.<研磨设计模式>.<Head First 设计模式> JAVA六大设计原 ...
- Java的7大设计原则和23种设计模式
目录 一.UML类图 二. 设计原则 1.单一职责原则 2.里氏替换原则 3.依赖倒置原则 4.接口隔离原则 5.迪米特法则-最少知道原则 6.开闭原则 7.组合/聚合复用原则 三.Java中的23 ...
- java 从入门到单身狗_java 的23种设计模式 之单身狗和隔壁老王的故事
觉得代码写的别扭了,回头翻翻java 的23种设计模式. today,额,这么晚了,困了.就弄个最简单的单例模式吧. 单例模式:俗称单身狗 package singleton; public clas ...
- 学习6大设计原则、23种设计模式
了解设计模式的朋友们,想必都听说过"六大设计原则"吧.其实最经典的 23 种设计模式中或多或少地都在使用这些设计原则,也就是说,设计模式是站在设计原则的基础之上的.所以在学习设计模 ...
- 面向对象设计原则与23种设计模式
面向对象概述 1.万物皆对象(Java反射原理-都是借助java.lang.class这个对象的属性.定义等实现) 2.面向对象的特征:封装(对象之间的隔离性.对象内部的属性封装).继承(类的重用,耦 ...
- 软件开发设计思想与6大软件设计原则、23种设计模式目录-设计模式
目录 1.软件开发设计指导思想: (1)可维护性Maintainability (2)可复用性Reusability (3)可扩展性Extensibility/Scalability (4)灵活性fl ...
- C++ 设计模式(8大设计原则、23种设计模式)李建忠
简 述: 设计模式,久闻大名.此记录学习 "C++ 设计模式 李建忠" 的札记,核心共 8大设计原则.23中设计模式.后发现 GitHub 也有类似笔记 Ref1 .Ref2 相关 ...
- 23种设计模式——软件设计模式概述
文章目录 23种设计模式--软件设计模式概述 1.软件设计模式的产生背景 2.软件设计模式的概念与意义 2.1. 软件设计模式的概念 2.2. 学习设计模式的意义 3.软件设计模式的基本要素 4.23 ...
最新文章
- 面试官最想要的synchronized,你值得拥有
- UvaUva11059 最大乘积
- 依图超车争夺AI创业第一股!冲刺科创板,募资75亿为造芯,去年营收91%投向研发...
- ASP.NET MVC学习之路由篇(2)
- 镜像安装linux选择内核版本,在CentOS和Ubuntu中安装Linux Kernel 4.13.10
- STM32之RCC配置
- Implementation of the USB 3.0 controller not found!
- SkyDrive Explorer 把微软25GB网络硬盘搬进“我的电脑”
- oracle:oracle学习案例(五):基础练习
- python怎么提交作业_python分析作业提交情况
- pip工具可以打包python源代码吗_将python源文件打包成exe文件
- MYSQL到ORACLE法式迁徙的注意变乱
- [转] 有关java中两个整数的交换问题
- (转)理解SQLSERVER中的排序规则
- kettle--数据库间的数据迁移工具
- web网页设计期末课程大作业 简单的学生网页作业源码 基于HTML仿淘宝电商网站项目的设计与实现 企业网站制作
- git出现绿色、红色状态的deleted
- 树莓派触摸屏校准以及QT触摸屏相关问题解决
- 我收藏的thinkphp扩展插件
- docker,deamon.json文件说明
热门文章
- Not using the local TSLint version found for XXX
- SAP Spartacus 在未登录状态下浏览器 local storage 里存储的数据
- SAP Spartacus focus directive增强之后的两次focus问题
- Angular HTTPClient的使用方法
- SAP Analytics Cloud关于Smart Predict功能的说明
- 一个SAP Marketing Cloud和Kyma的集成
- i18n - why Chinese resource will be loaded by default
- my Lead add Lead test
- 使用ST05分析IBASE search identical select
- 使用SAT研究IBASE hierarchy读取性能