当前位置: 首页 > news >正文

邢台市网站建设_网站建设公司_Logo设计_seo优化

李沧做网站公司,sem优化案例,门户网站做seo,生成图片的网站模板方法模式 场景#xff1a;需使用代码方式实现#xff0c;考完试后#xff0c;将各个学生的试卷及答案誊抄一份。 假如有两个学生的试卷誊抄完毕. // 学生A public class TestPaperA {// 试题1public void testQuestion1() {System.out.println(问题一:XXXXXXXX…模板方法模式 场景需使用代码方式实现考完试后将各个学生的试卷及答案誊抄一份。 假如有两个学生的试卷誊抄完毕. // 学生A public class TestPaperA {// 试题1public void testQuestion1() {System.out.println(问题一:XXXXXXXX[] A.xx B.xx C.xx D.xx );System.out.println(答案 A);}// 试题2public void testQuestion2() {System.out.println(问题二:XXXXXXXX[] A.xx B.xx C.xx D.xx );System.out.println(答案 A);}// 试题3public void testQuestion3() {System.out.println(问题三:XXXXXXXX[] A.xx B.xx C.xx D.xx );System.out.println(答案 A);} }// 学生B public class TestPaperB {// 试题1public void testQuestion1() {System.out.println(问题一:XXXXXXXX[] A.xx B.xx C.xx D.xx );System.out.println(答案 B);}// 试题2public void testQuestion2() {System.out.println(问题二:XXXXXXXX[] A.xx B.xx C.xx D.xx );System.out.println(答案 B);}// 试题3public void testQuestion3() {System.out.println(问题三:XXXXXXXX[] A.xx B.xx C.xx D.xx );System.out.println(答案 B);} }客户端 System.out.println(学生A的试卷); TestPaperA a new TestPaperA(); a.testQuestion1(); a.testQuestion2(); a.testQuestion3();System.out.println(学生B的试卷); TestPaperB b new TestPaperB(); b.testQuestion1(); b.testQuestion2(); b.testQuestion3();一眼看出很多重复的代码直接进行提炼抽离。此例中试卷都是一样的而答案是不同的我们直接将重复的代码提炼然后学生去继承它即可。 试卷类 // 试卷类 public abstract class TestPaper { // 3道题的答案protected abstract String answer1();protected abstract String answer2();protected abstract String answer3();// 试题1public void testQuestion1() {System.out.println(问题一:XXXXXXXX[] A.xx B.xx C.xx D.xx );System.out.println(答案 answer1());}// 试题2public void testQuestion2() {System.out.println(问题二:XXXXXXXX[] A.xx B.xx C.xx D.xx );System.out.println(答案 answer2());}// 试题3public void testQuestion3() {System.out.println(问题三:XXXXXXXX[] A.xx B.xx C.xx D.xx );System.out.println(答案 answer3());} }学生类只需要继承它然后填写自己的答案即可。因为父类已经建立好了所有重复的模板 // 学生A public class TestPaperA extends TestPaper{Overrideprotected String answer1() {return A;}Overrideprotected String answer2() {return A;}Overrideprotected String answer3() {return A;} }客户端 System.out.println(学生A的试卷); TestPaper a new TestPaperA(); a.testQuestion1(); a.testQuestion2(); a.testQuestion3();那么上述的例子中用的一种设计模式就是模板方法模式。定义一个操作中的算法的骨架而将一些步骤延迟到子类中。模板方法使得子类可以不改变一个算法的结构即可重新定义该算法的某些特定步骤。 结构图及代码示例如下 public abstract class AbstractClass {// 模板方法(所有重复的代码都放入这里)public void templateMethod() {...}// 子类的特定实现public abstract void primitiveOperation1();public abstract void primitiveOperation2();}子类 public class ConcreteClassA extends AbstractClass {Overridepublic void primitiveOperation1() {System.out.println(A类具体实现一);}Overridepublic void primitiveOperation2() {System.out.println(A类具体实现二);} }模板方法是通过把不变行为搬到父类(超类)去除子类中重复代码来体现它的优势。 模板方法是提供了一个代码复用平台。 当不变的和可变行为在方法的实现中混合在一起的时候不变行为就会在类中重复出现。我们通过模板方法将这些行为搬移到单一的地方这样帮助子类摆脱重复的不变行为的纠缠。 外观模式 以一个股票买卖的例子来理解一下现在有股票、国债、房产买入卖出代码如下 股票 // 股票1 public class Stock1 {public void buy() {System.out.println(股票1买入);}public void sell() {System.out.println(股票1卖出);} } // 股票2 class Stock2 {public void buy() {System.out.println(股票2买入);}public void sell() {System.out.println(股票2卖出);} }国债、房产 // 国债1 public class NationalDebt1 {public void buy() {System.out.println(国债买入);}public void sell() {System.out.println(国债卖出);} }// 房产 class Realty1 {public void buy() {System.out.println(房产买入);}public void sell() {System.out.println(房产卖出);} }客户端 Stock1 stock1 new Stock1(); Stock2 stock2 new Stock2(); NationalDebt1 nd1 new NationalDebt1(); Realty1 rt1 new Realty1();// 买入 stock1.buy(); stock2.buy(); nd1.buy(); rt1.buy();// 卖出 stock1.sell(); stock2.sell(); nd1.sell(); rt1.sell();外观模式 增加一个基金类结构图 基金类代码 public class Fund {Stock1 stock1;Stock2 stock2;NationalDebt1 nd1;Realty1 rt1;public Fund() {stock1 new Stock1();stock2 new Stock2();nd1 new NationalDebt1();rt1 new Realty1();}public void buyFund() {stock1.buy();stock2.buy();nd1.buy();rt1.buy();}public void sellFund() {stock1.sell();stock2.sell();nd1.sell();rt1.sell();}}客户端 Fund fund new Fund(); fund.buyFund();fund.sellFund();外观模式为子系统中的一组接口提供一个一致的界面此模式定义了一个高层接口这个接口使得这一子系统更加容易使用。 首先在设计阶段应该有意识将不同的两个层进行分离。其次在开发阶段子系统往往因为不断的重构演化而变得越来越复杂增加外观模式可以提供一个简单的接口减少它们之间的依赖。 还可以在新系统中使用外观模式创建一个Facade类(外观模式类)来提供设计粗糙或高复杂度的遗留代码的比较清晰简单的接口让新系统与Facade对象交互Facade与遗留代码交互完成复杂的工作。
http://www.ihoyoo.com/news/1580.html

相关文章:

  • 去哪里找做网站 的客户wordpress学生主题
  • 手机端网站外部链接如何去优化jsp 网站开发例子
  • 网站制作关键做网页的it网站
  • 福建省建设厅网站资质查影视网站如何做seo
  • 仙居微信网站开发ppt模板简约
  • 网站无法下载视频 怎么做企业查名
  • 垦利网站制作开源项目网站
  • 个人静态网站首页怎么做搭建网站平台有前途吗
  • 网络建站如何建成上海外贸人才网
  • 房地产网站系统网站套利怎么做
  • 如何给自己的网站做优化wordpress广告公司模板
  • 怎样访问简版网站公司做网站计入那个科目
  • 以前做的网站怎么才能登陆后台代练中介网站有得做吗
  • 网站想要被收录要怎么做百度搜索浏览器
  • 海拉尔做自己的网站成都logo设计公司排名
  • 深圳网站建设招标网站建站的书籍
  • 怎么做代刷网站教程六安网站关键词排名优化地址
  • 建设平滑扣皮带网站邯郸做wap网站的地方
  • 建设门户网站所需开发一款软件的费用
  • 饰品企业网站建设html网页制作房地产页面
  • 网站建设的界面f分旅游公司网站 优帮云
  • 一站式网页设计服务平台iis7添加php网站
  • 怎么做自己的门户网站一个网站建设多少钱
  • 天网站建设苏州网络推广去苏州聚尚网络
  • 海宁网站制作wordpress删除自定义栏目
  • 建立html网站wordpress网站嵌入音乐
  • 企业网站建设公司网络wordpress 最新主题
  • 顺企网哈尔滨网站建设百度收录网站标题
  • it行业网站模板制作个人网页作品
  • 东营建站公司急招室内设计师