这里记录一些从变化和稳定这对矛盾的角度,来理解面向对象编程和设计模式的一些笔记。
原创 2012-03-08 16:11:07
684阅读
本文为《软件设计精要与模式》第二章 软件设计最大的敌人,就是应付需求不断的变化变化有时候是无穷尽的,于是项目开发就在反复的修改更新中无限期地延迟交付的日期。变化如悬在头顶的达摩克斯之剑,令许多软件工程专家一筹莫展。正如无法找到解决软件开发的“银弹”,要彻底将变化扼杀在摇篮之中,看来也是不可能完成的任务。只有积极地面对“变化”,方才是可取的态度。极
原创 2009-02-27 15:25:23
1933阅读
1点赞
1评论
考虑一个日志记录工具。目前需要提供一个方便的日志API,使得客户可以轻松地完成日志的记录。该日志要求被记录到指定的文本文件中,记录的内容属于字符串类型,其值由客户提供。我们可以非常容易地定义一个日志对象: public class Log { public void Write(string target, string log) { //实现内容; } } 当客户...
原创 2021-07-22 11:56:15
324阅读
软件设计最大的敌人,就是应付需求不断的变化变化有时候是无穷尽的,于是项目开发就在反复的修改、更新中无限期地延迟交付的日期。变化如悬在头顶的达摩克斯之剑,令许多软件工程专家一筹莫展。正如无法找到解决软件开发的“银弹”,要彻底将变化扼杀在摇篮之中,看来也是不可能完成的任务。那么,积极地面对“变化”,方才是可取的态度。于是,极限编程(XP)的倡导者与布道者Kent Beck提出要“拥抱变化”,从软件...
原创 2021-07-22 11:56:15
445阅读
设想这样一个需求,我们需要为自己的框架提供一个负责排序的组件。目前需要实现的是冒泡排序算法和快速排序算法,根据“面向接口编程”的思想,我们可以为这些排序算法提供一个统一的接口ISort,在这个接口中有一个方法Sort(),它能接受一个object数组参数。对数组进行排序后,返回该数组。接口的定义如下: public interface ISort { ...
原创 2021-07-22 11:56:17
213阅读
封装 封装Java的三大特性之一。封装顾名思义就是包装,在编程领域解释为信息隐藏,利用抽象的数据类型将数据和基于数据的操作封装在一起,构成一个不可分割的独立实体,数据被保护在抽象数据类型的内部,尽可能地隐藏内部的实现细节,只保留一些对外使用的方法或者接口来与外部发生联系。系统的其他对象只能通过封装在数据外层的一些有权限的操作(方法)来与这个对象发生交互。也就是我们无需知道对象内部的实现细节,但
转载 2023-07-18 20:43:06
6阅读
设想这样一个需求,我们需要为自己的框架提供一个负责排序的组件。目前需要实现的是冒泡排序算法和快速排序算法,根据“面向接口编程”的思想,我们可以为这些排序算法提供一个统一的接口ISort,在这个接口中有一个方法Sort(),它能接受一个object数组参数。对数组进行排序后,返回该数组。接口的定义如下: public interface ISort{ void Sort(ref object...
转载 2006-09-07 00:01:00
55阅读
2评论
软件设计最大的敌人,就是应付需求不断的变化变化有时候是无穷尽的,于是项目开发就在反复的修改、更新中无限期地延迟交付的日期。变化如悬在头顶的达摩克斯之剑,令许多软件工程专家一筹莫展。正如无法找到解决软件开发的“银弹”,要彻底将变化扼杀在摇篮之中,看来也是不可能完成的任务。那么,积极地面对“变化”,方才是可取的态度。于是,极限编程(XP)的倡导者与布道者Kent Beck提出要“拥抱变化”,从软件工...
转载 2006-09-07 00:00:00
80阅读
2评论
发生变化实验的验证。   之间进行抓包分析。抓包结果如下: REQUEST地址信息   REPLY和R3由以上抓包可以明显看出,在发出ICMP地址却在不停的变化。   地址却先指向R2因为数据包从R1的路径,在路由表里进行最长匹配,看到3.3.3.3接口,在此时源和目的MAC上查过三张表之后确定目的是自己的直连路由,所以源和目的MAC
原创 2009-03-29 14:17:45
1156阅读
考虑一个日志记录工具。目前需要提供一个方便的日志,使得客户可以轻松地完成日志的记录。该日志要求被记录到指定的文本文件中,记录的内容属于字符串类型,其值由客户提供。我们可以非常容易地定义一个日志对象: public class Log{ public void Write(string target, string log) { //实现内容; ...
转载 2006-09-07 00:00:00
29阅读
2评论
        软件设计最大的敌人,就是应付需求不断的变化变化有时候是无穷尽的,于是项目开发就在反复的修改和更新中无限期地延迟交付的日期。变化如悬在头顶的达摩克斯之剑,令许多软件工程专家一筹莫展。正如无法找到解决软件开发的“银弹”,要彻底将变化扼杀在摇篮之中,看来也是不可能完成的任务。那么,积极地面对“变化”,方才是可取的态度。于是,极
原创 2007-06-17 12:28:00
1207阅读
洞察设计模式的底层逻辑原创 不拔 阿里技术 2021-04-15设计模式是开发同学经常聊到的话题,也经常被用到实际的开发项目中,熟练的人可以做到信手拈来,不熟悉的人陷入苦思冥想中。笔者认为,不仅仅要掌握设计模式的用法,更要洞察设计模式的底层逻辑,只有那样,才能做到遇到实际的问题可以使用合适的设计模式去解决。一  你应该关注底层逻辑 1  设计模式的段子 段子一:你让他给你讲设计模式,他给你讲故事,
转载 2021-05-21 08:53:59
705阅读
2评论
微信搜索:码农StayUp 主页地址:https://gozhuyinglong.github.io 源码分享:https://github.com/gozhuyinglong/blog-demos 1. 一个简单的模拟鸭子游戏 我们先来看一个模拟鸭子的游戏:游戏中会出现各种鸭子,它们一边游泳戏水,
原创 2021-10-22 13:53:26
206阅读
/创建程序,在其中定义2个类,AccountTest和Account类体会java封装性 //1.Account要求具有属性;姓名(长度2-4),余额(必须大于20),密码(必须是6位数),如果不满足,则给出提示信息,并给默认值 //2.通过setxxx方法给Account的属性赋值 //3.在AccountTest中测试 public class AccountTest { publ
转载 2023-05-24 09:42:44
188阅读
(一)学习总结1.什么是面向对象的封装性,Java中是如何实现封装性的?试举例说明。封装性是面向对象的第一大性,所谓的封装性起保护作用是对外部不可见的; 只要是被封装的属性必须通过setter和getter方法设置和取得属性封装;private 属性类型 属性名称; 方法封装;private 方法方法返回值 方法名称(参数列表){}private String name; private in
转载 2023-12-12 22:42:58
52阅读
我们可以选择把类的方法、属性装起来,便于日后的程序书写和使用,这种处理方法就是封装的思想。因为封装类之后,其他的外部类方法就不能在混入其中,对代码的安全性进行了提高。接下来我们就对java封装的概念、目的进行介绍,然后在实例中为大家演示封装的方法。1.概念封装性是面向对象三大特征之一,是指一种将抽象性函式接口的实现细节部份包装、隐藏起来的方法。封装可以被认为是一个保护屏障,防止该类的代码和数据被
转载 2023-06-14 22:57:15
90阅读
我们知道java是一门面向对象的语言,面向对象的语言有三大特性:封装,继承和多态。在类和对象的阶段,主要研究的是封装特性。1.封装1.1封装的概念封装性简单来说就是将具体功能是如何实现的细节给封装起来,不让外界知道,但会提供接口来实现这个功能。以手机为例,我们平常看到的只是手机的外壳,这些外壳把手机的内部细节给封装起来了。但是我们可以通过屏幕这个接口来实现手机的各种功能,而且我们并不知道手机内部是
面向对象三大特性之多态和封装面向对象三大特性:1.封装1.1 封装定义封装是将代码及其处理的数据绑定在一起的一种编程机制,该机制保证了程序和数据都不受外部干扰且不被误用。1.2 封装的作用保护类中的信息隐藏细节信息提高软件的复用率1.3 封装的实现使用访问控制符 private,default(默认忽略不写),protected,public2 多态多态的现实意义:现实事物总是会体现出多种形态。比
转载 2023-12-19 20:01:18
67阅读
java项目案列之封装的实例1.有一个专业类,有一个专业对象,专业名称:计算机科学与技术,专业编号:JO01,专业年限:4,对年限添加约束,如果输入小于0,则默认为0,否则显示输入的值 2.有一个学生类,有一个学生对象,学生姓名:张三,性别:男,年龄:19,对性别添加约束,如果输入不是男或文,则默认为男,否则显示输入的值 3.计算机科学与技术专业的学生张三做自我介 绍package yuxi1;
转载 2023-06-14 23:17:24
712阅读
Java封装1. java封装概述1.1.封装定义在面向对象程式设计方法中,封装(英语:Encapsulation)是指一种将抽象性函式接口的实现细节部份包装、隐藏起来的方法。(隐藏对象的属性和实现细节,仅对外提供公共访问方式。)封装可以被认为是一个保护屏障,防止该类的代码和数据被外部类定义的代码随机访问。要访问该类的代码和数据,必须通过严格的接口控制。封装最主要的功能在于我们能修改自己的实现代码
转载 2023-05-30 19:44:44
76阅读
  • 1
  • 2
  • 3
  • 4
  • 5