定 义:它定义了算法家族,分别封装起来,让它们之间可以互相替换,此模式让算法的变化,
不会影响到使用算法的客户。
示例:商场收银系统,实现正常收费、满300返100、打8折.......等不同收费方式
效果图:
结构图:
HTML代码:
<html xmlns="http://www.w3.org/1999/xhtml"> <head runat="server"> <title>设计模式:策略模式</title> <style type="text/css"> table { width: 300px; height: 250px; border-collapse: collapse; } table, tr, td { border: 1px solid gray; } </style> </head> <body> <form id="form1" runat="server"> <table> <thead> <tr> <td colspan="3"> 商场收银软件 </td> </tr> </thead> <tr> <td> 单价: </td> <td> <asp:TextBox runat="server" ID="txtPrice"></asp:TextBox> </td> <td> <asp:Button runat="server" ID="btnOK" Text="确定" onclick="btnOK_Click" /> </td> </tr> <tr> <td> 数量: </td> <td> <asp:TextBox runat="server" ID="txtNumber"></asp:TextBox> </td> <td> <asp:Button runat="server" ID="Button1" Text="重置" onclick="Button1_Click" /> </td> </tr> <tr> <td> 计算方式: </td> <td> <asp:DropDownList runat="server" ID="ddlCashType"> <asp:ListItem Selected="True">正常收费</asp:ListItem> <asp:ListItem>打8折</asp:ListItem> <asp:ListItem>满300返100</asp:ListItem> </asp:DropDownList> </td> <td> </td> </tr> <tr> <td colspan="3"> <asp:TextBox runat="server" ID=txtMsg TextMode="MultiLine" Rows="8" Columns="30"></asp:TextBox> </td> </tr> <tr> <td> 总计: </td> <td> <asp:Label runat="server" ID="lblTotal"></asp:Label> </td> <td> </td> </tr> </table> </form> </body> </html>