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

怎样做外贸网站建设纯图片网站

怎样做外贸网站建设,纯图片网站,无锡网站排名系统,做外贸必须有公司网站么定义 在操作中定义算法的框架,将一些步骤推迟到子类中。模板方法让子类在不改变算法结构的情况下重新定义算法的某些步骤。 模板方法模式是一种基于继承的代码复用技术,它是一种类行为模式。 模板方法模式其结构中只存在父类与子类之间的继承关系。 模板方法的作…

定义

在操作中定义算法的框架,将一些步骤推迟到子类中。模板方法让子类在不改变算法结构的情况下重新定义算法的某些步骤。

模板方法模式是一种基于继承的代码复用技术,它是一种类行为模式。 模板方法模式其结构中只存在父类与子类之间的继承关系。

模板方法的作用主要是提高程序的复用性和扩展性:

  • 复用指的是,所有的子类可以复用父类中提供的模板方法代码

  • 扩展指的是,框架通过模板模式提供功能扩展点,让框架用户可以在不修改框架源码的情况下,基于扩展点定制化框架的功能。

模板方法模式的定位很清楚,就是为了解决算法框架这类特定的问题,同时明确表示需要使用继承的结构。

模板方法结构

模板方法(Template Method)模式包含以下主要角色:

  • 抽象父类:定义一个算法所包含的所有步骤,并提供一些通用的方法逻辑。

  • 具体子类:继承自抽象父类,根据需要重写父类提供的算法步骤中的某些步骤。

抽象类(Abstract Class):负责给出一个算法的轮廓和骨架。它由一个模板方法和若干个基本方法构成。

  • 模板方法:定义了算法的骨架,按某种顺序调用其包含的基本方法。

  • 基本方法:是实现算法各个步骤的方法,是模板方法的组成部分。基本方法又可以分为三种:

    • 抽象方法(Abstract Method) :一个抽象方法由抽象类声明、由其具体子类实现。

    • 具体方法(Concrete Method) :一个具体方法由一个抽象类或具体类声明并实现,其子类可以进行覆盖也可以直接继承。

    • 钩子方法(Hook Method) :在抽象类中已经实现,包括用于判断的逻辑方法和需要子类重写的空方法两种。

    • 一般钩子方法是用于判断的逻辑方法,这类方法名一般为isXxx,返回值类型为boolean类型。

模板方法模式总结

优点:

  • 在父类中形式化的定义一个算法,而由它的子类来实现细节处理,在子类实现详细的处理代码时,并不会改变父类算法中步骤的执行顺序.

  • 模板方法可以实现一种反向的控制结构,通过子类覆盖父类的钩子方法,来决定某一个特定步骤是否需要执行

  • 在模板方法模式中可以通过子类来覆盖父类的基本方法,不同的子类可以提供基本方法的不同实现,更换和增加新的子类很方便,符合单一职责原则和开闭原则.

缺点:

  • 对每个不同的实现都需要定义一个子类,这会导致类的个数增加,系统更加庞大,设计也更加抽象。

  • 父类中的抽象方法由子类实现,子类执行的结果会影响父类的结果,这导致一种反向的控制结构,它提高了代码阅读的难度。

模板方法模式的使用场景一般有:

  • 多个类有相同的方法并且逻辑可以共用时;

  • 将通用的算法或固定流程设计为模板,在每一个具体的子类中再继续优化算法步骤或流程步骤时;

  • 重构超长代码时,发现某一个经常使用的公有方法。

例子

P2P公司的借款系统中有一个利息计算模块,利息的计算流程是这样的:

  1. 用户登录系统,登录时需要输入账号密码,如果登录失败(比如用户密码错误),系统需要给出提示。

  2. 如果用户登录成功,则根据用户的借款的类型不同,使用不同的利息计算方式进行计算。

  3. 系统需要显示利息。

这个例子中,借款类型的不同,会影响其具体利息计算方法。这里可以是抽象的方法。

在子类 借款具体的方法进行计算。

/*** 账户抽象类**/
public abstract class Account {//step1 具体方法-验证用户信息是否正确public boolean validate(String account,String password){System.out.println("账号: " + account + ",密码: " + password);if(account.equalsIgnoreCase("tom") &&password.equalsIgnoreCase("123456")){return true;}else{return false;}}//step2 抽象方法-计算利息public abstract void calculate();//step3 具体方法-显示利息public void display(){System.out.println("显示利息!");}//模板方法public void handle(String account,String password){if(!validate(account,password)){System.out.println("账户或密码错误!!");return;}calculate();display();}
}/*** 借款一个月**/
public class LoanOneMonth extends Account{@Overridepublic void calculate() {System.out.println("借款周期30天,利率为10%!");}
}/*** 借款七天**/
public class LoanSevenDays extends Account{@Overridepublic void calculate() {System.out.println("借款周期7天,无利息!仅收取贷款金额1%的服务费!");}@Overridepublic void display() {System.out.println("七日内借款无利息!");}}public class Client {public static void main(String[] args) {Account a1 = new LoanSevenDays();a1.handle("tom","12345");System.out.println("==========================");Account a2 = new LoanOneMonth();a2.handle("tom","123456");}
}


文章转载自:

http://CiIo3AYd.fpkdd.cn
http://QZxMXcCL.fpkdd.cn
http://BXh4numm.fpkdd.cn
http://pbXb9qpk.fpkdd.cn
http://b77l1oef.fpkdd.cn
http://6DOkw5jV.fpkdd.cn
http://6vmqPsVA.fpkdd.cn
http://YtrqPzOg.fpkdd.cn
http://SVD3U2mO.fpkdd.cn
http://C0SaRM5G.fpkdd.cn
http://g1fxmANg.fpkdd.cn
http://Z01af4fG.fpkdd.cn
http://deXZPYaB.fpkdd.cn
http://zpN7kTnm.fpkdd.cn
http://Drir60WB.fpkdd.cn
http://CLZ4vbqK.fpkdd.cn
http://0MvhVNP8.fpkdd.cn
http://h2nbiBWl.fpkdd.cn
http://bI3Y5UKz.fpkdd.cn
http://uZTHI6Gy.fpkdd.cn
http://L3SWAntM.fpkdd.cn
http://u2bXM3gf.fpkdd.cn
http://OxX9nR7G.fpkdd.cn
http://bdMfmylR.fpkdd.cn
http://Wm2masac.fpkdd.cn
http://qhTUB6Pa.fpkdd.cn
http://s77yGvlt.fpkdd.cn
http://tRPgpEcZ.fpkdd.cn
http://RAWfNP65.fpkdd.cn
http://QaGowfBn.fpkdd.cn
http://www.dtcms.com/wzjs/770539.html

相关文章:

  • 杰奇网站地图怎么做360网站兼容模式
  • 公司网站建设方案建议企业品牌网站建设类型
  • 如何制作纯静态网站aspx 网站开发工具
  • 社区网站 租用服务器还是只需要购买空间怎么才能创建个人网站
  • 女生千万别学市场营销湖南竞价优化哪家好
  • 更改网站模板太原谁想做网站
  • 手机ps软件如何做ppt下载网站网站建设视频百度云
  • 哪个网站可以免费做招牌北京展台设计制作
  • 常州哪些网站公司做的好处家如何网站
  • 自己创建个人免费网站王野天津音乐广播电台
  • 自学网站建设要看什么书海外网站推广
  • 顺德公司做网站平面设计的网站有哪些网站
  • 网站更换空间对优化的影响在网站和网页的区别
  • 盐城哪家专业做网站装饰logo设计图片
  • wordpress 装饰公司seo投放是什么意思
  • 做网站是先做后台还是前端建设厅网站用户名和密码
  • 快速网站排名提升工具网络维护可以自学吗
  • 网站配色绿色微商商城系统开发
  • 加强学校网站建设的要求谷歌浏览器对做网站有什么好处
  • 做网站用什么版本系统wordpress微信缩略图不显示
  • 青色网站欣赏wordpress post_content
  • 台州手机网站开发wordpress搭建商城网站
  • wordpress能做流量站吗全能医院网站管理系统
  • 北京市建设监理协会网站html免费模板网站
  • 学生个人网站布局临沂市建设局兰山区网站
  • 网站制作维护价格在手机上怎么注册公司
  • 无锡建设局评职称网站做简约头像网站
  • 个人网站备案要钱吗网站 伪静态
  • 网站收录提交入口官网餐饮加盟培训网站建设
  • 昆山自适应网站建设网站建设夬金手指花总