java程序设计模式程序设计(编辑修改稿)内容摘要:
)。 17. position++。 18. return obj。 19. } 20. public boolean hasNext() { 21. if (position = ()) { 22. return false。 23. } else { 24. return true。 25. } 26. } 27. //不支持 remove 操作 28. public void remove(){ 29. throw new UnsupportedOperationException( 30. Alternating MyIterator does not support remove())。 31. } 32. } 33. } 使用时, MyIterator 对象直接调用 iterator()方法就可以将自定义容器对象转换为迭代器对象。 Iterator 模式的优点: (1).实现功能分离,简化容器接口。 让容器只实现本身的基本功能,把迭代功能委让给外部类实现,符合类的设计原则。 (2).隐藏容器的实现细节。 (3).为容器或其子容器提供了一个统一接口,一方面方便调用;另一方面使得调 用者不必关注迭代器的实现细节。 (4).可以为容器或其子容器实现不同的迭代方法或多个迭代方法。 Strategy 设计模式 Strategy 策略设计模式主 要是定义一系列的算法,把这些算法封装成单独的类,在运行时动态选择需要的算法,策略模式机制如下: 策略模式例子如下: [java] view plaincopy 1. //文本替换策略 2. abstract class TextStrategy { 3. protected String text。 4. 5. public TextStrategy(String text) { 6. = text。 7. } 8. public abstract String replace()。 9. } 10. //替换算法 1:将文本中 @r@n替换为 @n 11. class StrategyOne extends TextStrategy { 12. public StrategyOne(String text) { 13. super(text)。 14. } 15. public String replace() { 16. (“StrategyOne:”)。 17. String result = (@r@n, @n))。 18. return result。 19. } 20. } 21. //替换算法 2:将文本中 @n替换为 @r@n 22. class StrategyTwo extends TextStrategy { 23. public StrategyTwo(String text) { 24. super(text)。 25. } 26. public String replace() { 27. (“StrategyTwo:”)。 28. String result = (“@n, @r@n))。 29. return result。 30. } 31. } 32. public class TextCharChange { 33. public static void replace(TextStrategy strategy) { 34. ()。 35. } 36. public static void main(String[] args){ 37. String testText1 = This is a test text!!@n Oh! Line Return!!@n。 38. String testText2 = This is a test text!!@r@n Oh! Line Return@r@n。 39. (new StrategyOne(testText2))。 40. (new StrategyTwo(testText1))。 41. } 42. } State 状态模式和 Strategy 策略模式非常类似,但是有如下区别: (1).State 状态模式重点在于设定状态变化,根据状态,返回相应的响应。 (2).Strategy 策略模式重点在于根据需求直接采用设定的策略,即根据场景选择合适的处理算法,而不需要改变状态。 Factory 设计模式 Factory 工厂设计模式为创建对象提供了一种抽象,而对使用者屏蔽了对象创建的具体细节过程,工厂模式有三种:简单工厂模式,抽象工厂模式和工厂方法模式。 (1).简单工厂模式: 又叫静态工厂模式,简单工厂只包括一个抽象产品类(该类可以是接口,也可以是具体的类),所有需要的产品类都是该抽象产品类的子类。 简单工厂模式中工厂为具体产品工厂,产品为抽象产品,由工厂实例创建产品实例: 一个生成圆形和矩形的图形工厂,例子如下: [java] view plaincopy 1. //图形接口 2. interface Shape(){ 3. public void draw()。 4. } 5. //圆形 6. class Circle implements Shape{ 7. public void draw(){ 8. (“Circle is drawing”)。 9. } 10. } 11. //矩形 12. class Rectangle implements Shape{ 13. public void draw(){ 14. (“Rectangle is drawing”)。 15. } 16. } 17. //图形工厂 18. class ShapeFactory{ 19. public static Shape createShape(String name) throws InstantiationException, 20. IllegalAccessException, 21. ClassNotFoundException 22. { 23. //使用 java 的反射机制来产生对象实例 24. return (Shape)(name).newInstance()。 25. } 26. } 27. public class ShapeDemo{ 28. public static void draw(Shape shape){ 29. ()。 30. } 31. public static void main(String[] args){ 32. draw((“Circle”))。 33. draw((“Rectangle”))。 34. } 35. } 图形工厂负责具体图形的对象实例化工作,图形使用者使用时不需要关心图形对象的具体产生过程。 (2).抽象工厂模式: 抽象工厂模式中可以包括多个抽象产品类,每个抽象 产品类可以产生出多个具体产品类,一个抽象工厂用于定义所需产品的组合形式,抽象工厂派生具体工厂类,这些具体工厂类就是简单工厂模式中的工厂类,具体工厂类负责具体产品实例的创建: 以软件皮肤为例,软件皮肤由样式 style 和颜色 color 组成,实现一套 IOS 风格的软件皮肤,一套 Android 风格的软件皮肤,通过抽象工厂实 现软件皮肤自由切换例子如下: [java] view plaincopy 1. //软件皮肤类 2. class Skin{ 3. private SkinFactory skinFactory。 4. public Skin(SkinFactory factory){ 5. setSkinFactory(factory)。 6. } 7. public void setSkinFactory(SkinFactory factory){ 8. = factory 9. } 10. public void showSkin(){ 11. (“Style=” + ().showStyle() + “, color=” + lor().showColor())。 12. } 13. } 14. //软件 Style 15. interface Style(){ 16. public void showStyle()。 17. } 18. //IOS style 19. class IOSStyle implements Style{ 20. public void showStyle(){ 21. (“This is IOS style”)。 22. } 23. } 24. //Android style 25. class AndroidStyle implements Style{ 26. public void showStyle(){ 27. (“This is Android style”)。 28. } 29. } 30. //软件 Color 31. interface Color(){ 32. public void showColor()。 33. } 34. //IOS color 35. class IOSColor implements Color{ 36. public void showColor(){ 37. (“This is IOS color”)。 38. } 39. } 40. //Android color 41. class AndroidColor implements Color{ 42. public void showColor(){ 43. (“This is Android color”)。 44. } 45. } 46. //抽象皮肤工厂 47. interface SkinFactory{ 48. public Style getStyle()。 49. public Color getColor()。 50. } 51. //IOS 皮肤工厂 52. class IOSSkinFactory implements SkinFactory{ 53. public Style getStyle(){ 54. return new IOSStyle()。 55. } 56. public Color getColor(){ 57. return new IOSColor()。 58. } 59. } 60. //Android 皮肤工厂 61. class AndroidSkinFactory implements SkinFactory{ 62. public Style getStyle(){ 63. return new AndroidStyle()。 64. } 65. public Color getColor(){ 66. return new AndroidColor()。 6。java程序设计模式程序设计(编辑修改稿)
相关推荐
厂 上海遐欣塑胶模具有限公司联合制作,注塑机配套专用模具。 模具制作充分考虑易加工 、 注塑 匀称等技术要求。 着色要求具有仿真性, 先 上底色、再利用激镭射加金, 通过流水浅喷柒形 式 ,形成不同色彩搭配 、 自上而下由深到浅的色状,色泽要 鲜明、 匀称、到位,多彩的颜色可吸引鱼类注意。 二、 项目工艺路线及技术特点 工艺选择原则 ( 1)先进性和前瞻性。 主要体现在产品质量性能
图样采购外购件,生产部门根据生产图纸进行一些部件的加工,样机 品 试制工作也逐步展开。 样机完成后,技术部门对样 品 各部分性能作了试验和测试,对 鱼的形状线条、内置钢球的大小、位置、鱼表面的色彩 等作了些改进,对图样、工艺进行了完善和审定,于 2020 年初 完成了 50 只 样 品 的小批量试生产。 50 只 样 品 被发往各地进行了实地跟踪 垂钓 试验,对该产品的 鱼的形状线条
等身”是用来形容科研水平高,原来“苹果等身”是用来形容感情深啊,顿悟。 (感谢 beibei18187的推荐)量高度 张某应电力公司之请,去给一批电线杆量高度。 张某来到电力公司后看了看地上的电线杆,然后对电力公司负责人说:“你去找几个高大的人来,把电线杆竖起来,我要爬上去量。 “电力公司负责人不解地问:“为什么要爬上去量,而不是在地上量呢。 ”张某回答说:“我要量的是高度不是长度。
c. 不可以,它是关键路径 d. 是两周 e. 活动 E的时间表如下: 例子 —— PERT与 CPM • 假设某项目主要由 9项活动组成。 以下是所有活动及它们的前期活动: • 该项目的活动工期估计(以天计算)如下: 活动 A B C D E F G H I 紧前活动 — — A, B A, B B C D D, F E,G,H 活动 最乐观 最可能 最悲观 活动 最乐观 最可能 最悲观 A
提前修订或更新项目的成本计划 、 项目工作顺序的安排 、 项目风险应对计划 , 或者是修改和调整其他的一些项目专项计划和项目集成计划。 第六节 实施整体变更控制 四 、 项目综合变更控制的输出结果 1. 项目变更的有效控制 2. 项目计划的及时更新 3.项目变更的行动方案的优化 4. 项目变更的纠偏行动与结果 5 .项目应吸取的经验、教训和相关数据 第六节 实施整体变更控制 五 、
XX ITET 培训中心 XX Information Technology Enhanced Training Center 经费 ; 若第一个月没有完成保底任务,而后两个月完成了全季度的保底任务,则补发第一个月所扣的 经费。 本地区的院校合作 和实训班的招生 , 学生入学后按实收学费的 1%作为经费支付给 县招生主管。 学历班 学历部分 的 学费不计入业绩 ,但每生支付 50 元作为 经费。