面向对象程序的设计模式

设计模式很难定义,通俗来说,就像是写作文的套路。程序员在程序设计总结了很多开发经验,就形成了设计模式。

基本思想:1.将变化的和不变的部分分开,在修改和维护时只需要改动变化的部分。

具体方式:

1.类继承是oop中的三大特点之一,可以实现代码复用,并且代码层次更清晰,但是继承会使类的耦合度变高,简单来说,一个类的改动可能会影响其他类,使代码的修改和维护变得困难。灵活性可以使用接口设计,通过继承接口,实现不同的行为,可以看到,代码的复用性降低了,于是又引入了在接口中的适配器。实现代码复用的其他方式为对象组合,将功能的实现委托(delegate)给其他对象。

2.多态:在向函数传递对象时,对象类型选择范围更广。不是针对具体类编程,扩展性更强。

3.很多现实生活中的行为都可以抽象成方法,当然,此时我们只是抽象思考,并不关心它们的具体实现方式。比如观察这模式。现实生活中的订阅报纸很像。那么事件类是怎么注册观察者的呢?其实很多gui的组件在处理用户交互的时候就用到了这种设计模式。这里还有个问题就是,谁主动订阅的?Observer持有Subject的对象引用,还是Subject对象持有Oberver对象的应用?

4

原文地址:https://www.cnblogs.com/Robin008/p/9254228.html

时间: 2024-10-08 12:22:55

面向对象程序的设计模式的相关文章

PHP 面向对象编程和设计模式 (5) - PHP 命名空间的使用及名称解析规则

PHP高级程序设计 学习笔记 2014.06.12 命名空间概述 PHP 在 5.3.0 以后的版本开始支持命名空间.什么是命名空间?从广义上来说,命名空间是一种封装事物的方法.在很多地方都可以见到这种抽象概念.在PHP中,命名空间用来解决在编写类库或应用程序时创建可重用的代码如类或函数时碰到的两类问题: 用户编写的代码与PHP内部的类/函数/常量或第三方类/函数/常量之间的名字冲突. 为很长的标识符名称(通常是为了缓解第一类问题而定义的)创建一个别名(或简短)的名称,提高源代码的可读性. PH

5本最佳的 Java 面向对象理论和设计模式的书籍

对于Java程序员来说,掌握面向对象的设计理论和一些设计模式是必备技能.不学理论就开始编程,就类似于学习一种语言而不学习字母表.市面上有很多有关面向对象理论的.设计模式的和最佳实践的,但只有很少的书真正值得我们阅读.这里涉及两件事情,一个是面向对象理论,一个是设计模式.前者是基础,后者是在基于基础的最佳实践.我们应该先学习面向对象理论,再学习设计模式,来看看这些理论是如何帮助我们解决日常碰到的问题的.推荐以下的五本书,能够帮助大家学习面向对象理论和设计模式.这些书从浅到深.J2EE的设计模式和核

面向对象程序设计方法学

面向对象程序设计方法学 面向对象程序设计吸取了结构化程序设计的一切优点,又考虑了现实世界与面向对象解空间的映射关系,它所追求的目标是将现实世界问题的求解尽可能的简单化.  面向对象程序设计将数据及对数据的操作放在一起,作为一个相互依存.不可分割的整体来处理,它采用数据抽象和信息隐藏技术.它将对象及对对象的操作抽象成一种新的数据类型—类,并且考虑不同对象之间的联系和对象类的重用性. 下面我将就本人了解的一些面向对象基本概念和大家分享.希望对大家有所帮助. 一.对象的基本概念 面向对象=对象+类+继

UML类图与面向对象设计原则—设计模式01

1. 引言     从大一开始学习编程,到如今也已经有两年了.从最初学习的Html,Js,JaveSe,再到JavaEE,Android,自己也能写一些玩具.学习过程中也无意识的了解了一些所谓的设计模式,如今打算系统的学习.学习以书<设计模式的艺术--软件开发人员内功修炼之道/刘伟著>为主.       所谓设计模式,即是前人对某类相似问题的抽象给出的解决方案.书中给出了23(Gof)+1(简单工厂模式)种设计模式.每种模式的学习将关注以下几点:名称(Name),问题(Problem),解决方

面向对象设计原则,设计模式

面向对象设计原则之一:单一职责原则 面向对象设计原则之二:开放封闭原则 面向对象设计原则之三:里氏替换原则 面向对象设计原则之四:依赖倒置原则 面向对象设计原则之五:迪米特法则 Java之美[从菜鸟到高手演变]之设计模式 Java之美[从菜鸟到高手演变]之设计模式二

ATM系统 第一个面向对象程序

该程序主要是模仿ATM机的过程主要是为了练习面向对象 主要有三个类 ATM和 Bank和 Account 类 先粘贴代码如下 ATM 1 package com.hpu.bai; 2 import java.util.Scanner; 3 public class ATM { 4 Bank bank = Bank.getBank(); 5 Scanner input = new Scanner(System.in); 6 Account nowAcc ; 7 private boolean an

二十九、黑马程序员---设计模式

-----Java培训.Android培训.iOS培训..Net培训.期待与您交流! 模式设计(Design pattern)是一套被反复使用.多数人知晓的.经过分类编目的.代码设计经验的总结.使用设计模式是为了可重用代码.让代码更容易被他人理解.保证代码可靠性. 毫无疑问,设计模式于己于他人于系统都是多赢的,设计模式使代码编制真正工程化,设计模式是软件工程的基石,如同大厦的一块块砖石一样.本文将介绍几种简单的设计模式. 单例设计模式: 解决一个类在内存中只有一个对象,多个程序使用统一配置信息对

js面向对象程序设置——创建对象

<script type="text/javascript">            //工厂方式        //1.原始方式        /* var objCar=new Object();        objCar.name="劳斯莱斯";        objCar.color="blue";        objCar.showColor = function() {          alert(this.colo

面向对象程序中的常量

一.常数据成员 使用constkeyword进行说明的数据成员,称为常数据成员.其作用和使用方法与一般常变量(const变量)相似,但常数据成员的值是不能改变的. 注意:仅仅能通过构造函数的參数初始化表对常数据成员进行初始化,不能採用在构造函数中对常数据成员赋初值的方法. 比如: 如在类体中定义了常数据成员age: const int age;    //声明age为常数据成员 在类外定义构造函数,应写成下面形式: CStudent∷Cstudent(int a):age (a){--}//通过