CharacterData类是一个抽象类,这个抽象类中定义了许多判断字符属性的抽象方法,这些方法的具体实现都在Character0X类中。其实Character类中有许多对应的方法,CharacterData子类实现抽象类的方法来实现字符属性的判断。我们并不关心这个字符由哪个具体类中的方法来判断,如果以后还增加了一些增补字符,那么只需要实现抽象类并且稍加修改of()方法即可。这就是使用策略模式的好
分类:
其他好文 时间:
2019-05-14 12:55:43
阅读次数:
95
知识储备: 1.接口:若干抽象方法的集合 作用:限制实现接口的类必须按照接口给定的调用方式实现这些方法;对高层模块隐藏了类的内部实现。 2.面向对象设计SOLID原则 开放封闭原则:一个软件实体如类、模块和函数应该对扩展开放,对修改关闭。即软件实体应尽量在不修改原有代码的情况下进行扩展。 里氏替换原 ...
分类:
其他好文 时间:
2019-05-13 16:22:41
阅读次数:
111
注册树模式 注册树模式(Registry Pattern)又叫注册模式、注册器模式。注册树模式通过将对象实例注册到一棵全局的对象树上,需要的时候从对象树上采摘的模式设计方法。 单例模式在整个项目中创建唯一实例的问题;工厂模式封装了对象的创建方式(工厂方法——用一个抽象方法,抽象工厂——用一簇抽象方法 ...
分类:
其他好文 时间:
2019-05-13 09:20:02
阅读次数:
99
什么是模板方法 模板方法模式:定义一个操作中的算法骨架,而将一些步骤延迟到子类中。模板方法使得子类可以不改变一个算法的结构即可重定义该算法的 重复代码全部在父类里面,不同业务的,抽取给子类进行实现。抽取过程 抽象方法。 某些特定步骤。 核心:处理某个流程的代码已经都具备,但是其中某个节点的代码暂时不 ...
分类:
其他好文 时间:
2019-05-09 23:26:41
阅读次数:
163
实验四 类与对象(封装、继承、多态等机制的使用) 实验内容: 1、 编写一个名为TwoDimensionalShape的抽象类,拥有属性area和circumference表示面积和周长,以及抽象方法getArea()和getCircumference(),用于获取面积和周长。 2、 编写Print ...
分类:
编程语言 时间:
2019-05-06 09:15:25
阅读次数:
436
重写GenericServlet源代码并实现登录用户名密码的匹配(重写类名为MyGenericServlet)。GenericServlet:是一个Servlet, 是Servlet接口和ServletConfig接口的实现类,但是是一个抽象类。其中的service方法为抽象方法,并要格外注意初始化 ...
分类:
其他好文 时间:
2019-05-05 15:57:54
阅读次数:
128
1.方法的定义 概念:对象的动态特征就是方法(静态特征是属性),方法表示此对象可以做什么。 类型:实例方法,静态方法,(构造方法,多态时会用到抽象方法和虚方法) 2.注意事项 访问修饰符:默认private 方法名:一般时动词或动宾短语。首字母大写。不能以数字开头。 参数列表:根据需要添加 成员变量 ...
定义:将类通过字节流的方式写入文件称为序列化,从类文件中通过字节流的方式读取出来称为反序列化 序列化:类要实现Serializable接口,才能序列化,Serializable接口没有任何抽象方法,是一个标记接口 反序列化: 反序列化时,如果readObject()次数超过了文件中总共的对象数就会报 ...
分类:
其他好文 时间:
2019-04-29 20:38:54
阅读次数:
104
一、封装 封装:是面向对象方法的重要原则,就是把对象的属性和行为(数据)结合为一个独立的整体,并尽可能隐藏对象的内部实现细节,就是把不想告诉或者不该告诉别人的东西隐藏起来,把可以告诉别人的公开,别人只能用我提供的功能实现需求,而不知道是如何实现的。增加安全性 以上 Person 类封装 name、g ...
分类:
其他好文 时间:
2019-04-29 09:40:56
阅读次数:
154
当定义一个类时,常常需要定义一些方法来描述该类的行为特征,但有时这些方法的实现方式是无法确定的。所以在出c#中允许在定义方法时不写方法体,不包含方法体的方法称为抽象方法,它被abstract修饰符标记。包含抽象方法的类要声明为抽象类,但抽象类可以不包含抽象方法,抽象类不可以被实例化。如果想调用抽象类 ...
分类:
其他好文 时间:
2019-04-27 21:16:11
阅读次数:
177