1、public class IdClient public static void main(String args) IdentityCardNo.getInstance();package Refactoring1;public class IdentityCardNo private static IdentityCardNo instance;private String no;private IdentityCardNo() public static IdentityCardNo getInstance() if (instance = null) System.out.printl
2、n(第一次办理身份证,分配新号码);instance = new IdentityCardNo();instance.setNo(No6000654321身份证号码为: + instance.getNo(); else 重复办理身份证,获取旧号码!return instance;public String getNo() return no;public void setNo(String no) this.no = no;2. 每一麻将局都有两个骰子,因此骰子就应当是双例类。现使用多例模式模拟该场景。import java.util.Date;import java.util.Random;
3、public class Dice private static Dice die1 = new Dice();private static Dice die2 = new Dice();private Dice() public static Dice getInstance(int whichOne) if (whichOne = 1) return die1;return die2;public synchronized int dice() Date d = new Date();Random r = new Random(d.getTime();int value = r.nextI
4、nt(); value = Math.abs(value);value = value % 6;value += 1;return value;public class DiceClient private static Dice die1, die2;die1 = Dice.getInstance(1);die2 = Dice.getInstance(2);System.out.println(第一骰子骰出: + die1.dice();第二骰子骰出: + die2.dice();3. 某软件公司为某电影院开发了一套影院售票系统,在该系统中需要为不同类型的用户提供不同的电影票(MovieTi
5、cket)打折(Discount)方式,具体打折方案如下: 学生凭学生证可享受票价8折优惠; 年龄在10周岁及以下的儿童可享受每张票减免10元的优惠(原始票价需大于等于20元); 影院VIP用户除享受票价半价优惠外还可进行积分,积分累计到一定额度可换取电影院赠送的奖品。该系统在将来可能还要根据需要引入新的打折方式。试使用策略模式设计并编程模拟实现该影院售票系统。public interface Discount public double calculate(double price); public class MovieTicket private double price; privat
6、e Discount discount; /维持一个对抽象折扣类的引用 public void setPrice(double price) this.price = price; /注入一个折扣类对象 public void setDiscount(Discount discount) this.discount = discount; public double getPrice() /调用折扣类的折扣价计算方法 return discount.calculate(this.price); /VIP会员票折扣类:具体策略类 public class VIPDiscount implemen
7、ts Discount public double calculate(double price) System.out.println(VIP票:增加积分! return price * 0.5; /学生票折扣类:public class StudentDiscount implements Discount public double calculate(double price) System.out.println(学生票: return price * 0.8; /儿童票折扣类: public class ChildrenDiscount implements Discount 儿童
8、票: return price - 10;public class MoviceClient public static void main(String args) MovieTicket mt = new MovieTicket(); double originalPrice = 60.0; double currentPrice; mt.setPrice(originalPrice); System.out.println(原始价为: + originalPrice);- Discount discount =new VIPDiscount(); /vip 用户 mt.setDiscou
9、nt(discount); /注入折扣对象 currentPrice = mt.getPrice();折后价为: + currentPrice); discount =new StudentDiscount(); /学生用户 discount =new ChildrenDiscount(); /儿童用户 3) 实现结果:4. 某软件公司欲开发一款飞机模拟系统,该系统主要模拟不同种类飞机的飞行特征与起飞特征,需要模拟的飞机种类及其特征如表1所示:表1 飞机种类及特征一览表飞机种类起飞特征飞行特征直升机(Helicopter)垂直起飞(VerticalTakeOff)亚音速飞行(SubSonicFly)客机(AirPlane)长距离起飞(LongDistanceTakeOff)歼击机(Fighter)超音速飞行(SuperSonicFly)鹞式战斗机(Harrier)超音速飞行(SuperSonicFl
copyright@ 2008-2022 冰豆网网站版权所有
经营许可证编号:鄂ICP备2022015515号-1